Soap Action mismatch error

I have a cache client trying to call a web service using  SOAP version 1.2.  We receive a SOAP error with the following text:

COD>w ##class(DBMS.Tools).DecomposeError(%objlasterror)

ERROR #6248: SOAP response is a SOAP fault: <Fault><Code><Value>s:Sender</Value>

<Subcode><Value>a:ActionMismatch</Value></Subcode></Code><Reason><Text xml:lang=

"en-US">The SOAP action specified on the message, '', does not match the HTTP SO

AP Action, 'siad.tpic/ITpicDefaultService/Audit'. </Text></Reason><Detail><a:Pro

blemHeaderQName>a:Action</a:ProblemHeaderQName></Detail></Fault>

 

From the documentation for SOAP 1.2 the soap action has to be in the content-type.  Looking at our message the content-type is empty.

 

We tried setting content-type using SetHttpHeader method, but we receive the same error.

 

This is on Cache 2016.2.1

 

Any information on what we need to do to get this to work would be appreciated.

 

 

Answers

Hi,
i would start with a SOAP-LOG ("ios") to see what is sent out and what SoapAction is used from within Caché soap client.
see SOAP Logging docs here.

Use/install 3rd party tool "soapUI" (there is a free version), import WSDL and try to sent request from here. See if you can make it working and chekc http-log in soapUI to see what soapUI is exactly sending out to the service.

Some WebServices requires SOAPAction http-header to be quoted. To achieve this you need to use SOAPACTIONQUOTED param in your WebClient class, e.g.

Parameter SOAPACTIONQUOTED = 1;

HTH,
Bernd

 

ah, i see that you have contacted support in the meantime and a WRC problem is already logged for this.
If the issue is solved, please update the solution here as well.

The problem was solved by adding a parameter

Parameter WSADDRESSING = "TRUE"

Once we did that the web service call contained the proper soap action information and the call worked.