使用SOAPHeader类更新SOAPMessage Header java

时间:2017-09-14 19:09:50

标签: java soap jaxb

场景:我必须调用基于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 ???? 

}

1 个答案:

答案 0 :(得分:0)

我想我没有正确理解这个过程。我阅读了这个位置的博客,这有助于我解决问题并使代码高效:

http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client/

如果您在写入WebService时遇到问题,我强烈建议您阅读本文。

此致 内文