The webservice I need to call is implemented in .NET and expects there to be no SOAPAction at all. If I call the webservice using a test tool like SOAPUI all is fine, and I can see that the SOAPAction header is NOT present at all.
But when I call from Spring Integration I get:-
Code:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Server did not recognize the value of HTTP Header SOAPAction: .</faultstring>
<detail/>
</soap:Fault>
</soap:Body>
</soap:Envelope>
because headers are
POST /xxxxxService/xxxxxxxxxxxxSerrvice.asmx HTTP/1.1
Accept-Encoding: gzip
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Accept: text/xml
Cache-Control: no-cache
So the endpoint is obviously not very flexible, but we can't change the implementation.