soap字符串报文转对象,对象再转为字符串,报文的body部分丢失,求解

sdfsf双方各 2014-04-25 05:58:58
/**
* <把soap字符串格式化为SOAPMessage>
* <功能详细描述>
* @param soapString
* @return
*/
public static SOAPMessage formartStringToSoap(String soapString){
MessageFactory msgFactory;
try{
msgFactory = MessageFactory.newInstance();
SOAPMessage reqMsg =
msgFactory.createMessage(new MimeHeaders(),
new ByteArrayInputStream(soapString.getBytes(Charset.forName("UTF-8"))));
reqMsg.saveChanges();
return reqMsg;
}
catch (Exception e){
e.printStackTrace();
return null;
}
}

/**
* 把soap对象格式化为字符串
* @param soapPart
* @return
*/
public static String formartSoapToString(SOAPMessage soapMessage){
String str="";
try{
SOAPPart soapPart=soapMessage.getSOAPPart();
Transformer trans = TransformerFactory.newInstance().newTransformer();
StringWriter sw = new StringWriter();
trans.transform(new DOMSource(soapPart.getEnvelope()), new StreamResult(sw));
sw.flush();
sw.close();
str=format(sw.toString());
}catch(Exception e){
e.printStackTrace();
}
return str;
}



我的字符串是下面的这个

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:out_parResponse xmlns:ns="http://ws.apache.org/axis2">
<return>838</return>
</ns:out_parResponse>
</soapenv:Body>
</soapenv:Envelope>

调用方法装换为soap报文,然后再转换为字符串,<return>838</return>(这个字符串的值丢失了,求解??)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body/>
</SOAP-ENV:Envelope>

是不是因为jar包的版本不对,还是什么呀???

字符里面是<soapenv,转为对象再转为字符串的时候,居然变成了<SOAP-ENV
...全文
836 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
grapepaul 2014-04-28
  • 打赏
  • 举报
回复
字符里面是<soapenv,转为对象再转为字符串的时候,居然变成了<SOAP-ENV 以上正常现象,不用怀疑。
oh_Maxy 2014-04-26
  • 打赏
  • 举报
回复
你丢失的好像是整个out_parResponse吧? 不知道你的Axis是什么版本的?解析代码不多的话,发出来看看吧?
tony4geek 2014-04-25
  • 打赏
  • 举报
回复
帮顶

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧