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"><UsernameToken><Username>yyyyy</Username><Password>xxxx</Password></UsernameToken></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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich will das gleiche wie gut. Jedoch, wie es scheint, auf meine eigene Suche, Spring nicht die volle Funktionen wie der SOAPMessage in java. Was Sie wohl brauchte, war ein addChildElement() in den header.
Landete ich Notwasserung die SoapMessage Gebäude und ging mit dieser:
Tun, beachten Sie, dass mit dem Ansatz über die übergabe einer SOAPMessage mit sendSourceAndReceiveToResult umschließt die SOAPMessage in einem anderen Umschlag und das ist nicht das, was wir wollen. 🙁
Update (10/25/2013): ich fand diese Lösung in einer anderen Diskussion. Es ist ein wenig vage, aber lohnt ein Blick in. Ich werde versuchen, dieses heraus zu testen auf mein Ende. Einer meiner Kollegen ausprobiert, spring-integration-ws und suchen in google nach dem Thema und der soap-Header brachte einige vielversprechende Ressourcen.
Update (10/25/2013): Nach herumalbern mit der Bibliothek, die ich entdeckt, es gibt einen schnelleren Weg, um wickeln Sie die SOAPMessage in Spring SoapMessage mit diesem:
Vielleicht nach bauen Sie Ihre soapmessage Sie können führen Sie es zur spring-ws und so weiter.