日期:2014-05-18  浏览次数:20757 次

soap文件转换成java对象
怎么把下面的一个soap报文转换成一个java对象,想把ns1:requesthead 转换成 
Requesthead 对象,然后就包含了一些属性,如ns1:bizcode,还要把s1:Body 也是转成Body对象,
用java怎么写


<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Header>
<ns1:requesthead xmlns:ns1="http://www.cmcc.com/adc/cloud/schema" soapenv:mustUnderstand="false">
<ns1:bizcode>biz001</ns1:bizcode>
<ns1:transid>tran002</ns1:transid>
<ns1:timestamp>2012-11-21 18:00:00</ns1:timestamp>
<ns1:requestid>reqid003</ns1:requestid>
<ns1:responseid>respid004</ns1:responseid>
<ns1:sign>sign005</ns1:sign>
<ns1:version>v1.1</ns1:version>
<ns1:priority>1</ns1:priority>
</ns1:requesthead>
</soapenv:Header>
<soapenv:Body>
<ns2:Invoke xmlns:ns2="http://www.cmcc.com/adc/cloud/service">
<request xmlns="http://www.cmcc.com/adc/cloud/schema">
<body>
<s1:Body xmlns:s1="http://www.cmcc.com/adc/cloud/schema">
<applyno xmlns="">E02_001</applyno>
<item xmlns="">
<appcode>AAA</appcode>
<appname>BBB</appname>
<eccode>CCC</eccode>
<ecname>DDD</ecname>
<no>1000</no>
<opttype>2</opttype>
</item>
</s1:Body>
</body>
</request>
</ns2:Invoke>
</soapenv:Body>
</soapenv:Envelope>

------解决方案--------------------
你不是要打算自己写一个soap协议的实现吧?
现在有很多实现了啊,cxf,xfire,还有很多,搜一下,这个东西没必要自己再去发明一套轮子
------解决方案--------------------
引用:
引用:你不是要打算自己写一个soap协议的实现吧?
现在有很多实现了啊,cxf,xfire,还有很多,搜一下,这个东西没必要自己再去发明一套轮子

我也是用axis2来做,问题我不知道怎么把OMElement转换成java对象返回



虽然我没用过axis2,但是你的问题的解决方法估计都是一样的,axis2肯定有实现的,你需要把wsdl文件路径配置到axis2客户端,然后axis2会自动生成对应的类,至于开始交互的时候,axis2会根据wsdl文件把soap报文自动转换成对应了类的对象,你就不必要关心是如何转换的,如果你非常想实现这样的方法,我估计也是不难的,类似于json转换一样的吧,百度一下吧,这里只能给你一点建议而已