Ensemble soap client misses soapaction http header
So I have an ensemble soap client which I use to send a message. The target web service is, however, giving a soapfault stating that my message misses the "SoapAction http header".
When I copy paste the message from my Cache Soap Log and fire it from Soap UI I get a proper response from the target web service. This suggests that my intersystems installation is somehow not including or losing some http headers.
I am running Ensemble 2016.2 SUSE on an ubuntu machine.
Here is the InterSystems message with the http headers from Soap UI:
POST https://test.salesforce.com/services/Soap/c/40.0/0DF8E0000004Ctp HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 447
Host: test.salesforce.com
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:s='http://www.w3.org/2001/XMLSchema'>
<SOAP-ENV:Body><login xmlns="urn:enterprise.soap.sforce.com"><username xsi:type="s:string">test</username><password xsi:type="s:string">test</password></login></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Comments
Hi Tom,
the Cache SOAP log does not show HTTP headers. To see the SOAPAction header sent out by Cache-SOAP-Client you need to use something like tcpTrace, etc.
However, can you please try if it make a difference if you use
Parameter SOAPACTIONQUOTED=1;
in your soap-webclient?
If the web client has the parameter SOAPACTIONQUOTED=1, then the web client will quote the SOAPAction value for SOAP 1.1.
If that does not help i would suggest you to contact WRC to open a WRC-ticket since this probably needs a more detailed review and deeper investigation.
HTH,
Bernd
Yes! That's it. It works now!