场景:我必须调用基于WSDL的webService并解析其响应。 问题:我在更新SOAPMessage SOAP Header& SOAP Body或SOAP Enevelope,我可以使用从WSimport工具生成的类创建它。
我使用WSimport工具为提供的wsdl生成了java类。生成了许多classess,其中我找到了一个类,它有对象创建SOAP Header,Body和其他细节shown in the picture。我的问题是,当我从提供的类生成我的soapbody和header时,我无法将它添加到我想要发布到webservice以获得响应的SOAP Message。是否需要创建任何方法来生成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 ????
}
答案 0 :(得分:0)
我想我没有正确理解这个过程。我阅读了这个位置的博客,这有助于我解决问题并使代码高效:
http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client/
如果您在写入WebService时遇到问题,我强烈建议您阅读本文。
此致 内文