【发布时间】:2017-09-14 19:09:50
【问题描述】:
场景:我必须调用一个基于 WSDL 的 webService 并解析它的响应。 问题:我在更新 SOAPMessage SOAP Header & SOAP Body 或 SOAP Enevelope 时遇到问题,我可以使用 WSimport 工具生成的类来创建它。
我已经使用 WSimport 工具为提供的 wsdl 生成了 java 类。生成了许多类,其中我发现一个类具有创建 SOAP 标头、正文和其他详细信息的对象,如 shown in the picture。我的问题是,当我从提供的类生成我的 soapbody 和 header 时,我无法将它添加到我想发布到 web 服务以获得响应的 SOAP 消息中。我需要创建任何方法来生成 SOAP 消息吗?
{
Body mySoapBody = new Body();
Header mySoapHeader = new Header();
Envelope mySoapEnevelope = new Envelope();
//Generate SOAP Body
mySoapBody.getAny().add(objofIdentifyCustomerClass);
//Generate SOAP Header
mySoapHeader.getAny().add(emfHeader);
//Generate SOAP Enevelope
mySoapEnevelope.setBody(mySoapBody);
mySoapEnevelope.setHeader(mySoapHeader);
//This is an Issue, Cant add generated Header to the SOAP Message
SOAPMessage soapMsg= MessageFactory.newInstance().createMessage( );
//MessageFactory factory = MessageFactory.newInstance();
//SOAPMessage message = factory.createMessage();
soapMsg.getSOAPBody().addDocument(getRE02XMLBodyMsg(ciscoRE02Request));
// How to add/update SOAP Header in the SOAPMessage ????
}
【问题讨论】: