Ich verwende SimpleWebServiceInboundGateway für die Verarbeitung von SOAP-Anfragen. HierWie kann ich Soap-Header in Spring Integration bekommen?
ist ein Stück von meinem Code:
@Router(defaultOutputChannel = "unsupportedOperation", inputChannel = "wsRequestChannel")
public String route(Message message) {
String soapAction = (String)message.getHeaders().get(WS_SOAP_ACTION);
...
}
@Bean
public SimpleWebServiceInboundGateway wsInboundGateway(){
SimpleWebServiceInboundGateway simpleWebServiceInboundGateway = new SimpleWebServiceInboundGateway();
simpleWebServiceInboundGateway.setRequestChannelName("wsRequestChannel");
simpleWebServiceInboundGateway.setReplyChannelName("wsResponseChannel");
simpleWebServiceInboundGateway.setErrorChannelName("wsErrorChannel");
return simpleWebServiceInboundGateway;
}
Der ankommende Seife Umschlag enthält eine Seife Kopf:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
<soapenv:Header>
<myAuth>
<username>user</username>
<password>pass</password>
</myAuth>
</soapenv:Header>
<soapenv:Body>
...
Das Message-Objekt in meinem Router nicht enthält die Kopfdaten. Wie kann ich den Benutzernamen und das Passwort extrahieren?