Spring-WS-client-hinzufügen SoapHeader

Ich versuche, das senden von SOAP-Anfrage mit soap-header sieht wie folgt aus:

<SOAP-ENV:Header>
<Security xmlns="http://www.xxx.org/xxx/2003/05">
<UsernameToken><Username>yyyy</Username><Password>xxx</Password>
</UsernameToken></Security></SOAP-ENV:Header>

Um es zu tun, ich bin das hinzufügen von header-element, mit SoapActionCallback

SoapActionCallback actionCallBack = new SoapActionCallback("https://aaa.com/bbb.asmx") {
            public void doWithMessage(WebServiceMessage msg) {
                SoapMessage smsg = (SoapMessage) msg;
                smsg.setSoapAction("http://www.xxx.org/yyy/2003/05/SessionCreate");
                SoapHeaderElement security = smsg.getSoapHeader().addHeaderElement(new QName("http://www.xxx.org/yyy", "Security"));
                security.setText("<UsernameToken><Username>yyyy</Username><Password>xxx</Password></UsernameToken>");
            }
        };

Mein problem ist, dass soap-header sieht wie folgt aus

<SOAP-ENV:Header><Security xmlns="http://www.xxx.org/yyy/2003/05">&lt;UsernameToken&gt;&lt;Username&gt;yyyyy&lt;/Username&gt;&lt;Password&gt;xxxx&lt;/Password&gt;&lt;/UsernameToken&gt;</Security></SOAP-ENV:Header>

Und als Ergebnis meiner Anfrage fehlschlägt:

Wie kann ich diese Meldung beheben?

  • Wissen Sie, dass Sie konvertieren können, soap-element zu Java-Element oder Knoten, und dann bekommen Sie das Dokument und erstellen Sie neue Knoten/Element und fügen Sie diese zu Ihrer aktuellen soap-element ? Dieses wird gesagt, was Sie versuchen zu erreichen, kann konfiguriert werden, indem der Frühling
  • wie zu zeigen, wie es getan werden kann, statt einfach die besagt, dass es sein kann? scheint so, dass wäre eine tolle Antwort.
InformationsquelleAutor danny.lesnik | 2013-10-02
Schreibe einen Kommentar