简体   繁体   中英

SOAP Action mismatch error while testing a WCF service with SoapUI

Am testing a WCF service with a sample input in SOAPUI. when i hit the run,I get an SOAP Exception like below:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
     <a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/fault</a:Action>
   </s:Header>
<s:Body>
 <s:Fault>
     <s:Code>
        <s:Value>s:Sender</s:Value>
        <s:Subcode>
           <s:Value>a:ActionMismatch</s:Value>
        </s:Subcode>
     </s:Code>
     <s:Reason>
        <s:Text xml:lang="en-US">The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://XXX.XX.XXXX/IXXXXXX/AddOrderInfromation'.</s:Text>
     </s:Reason>
     <s:Detail>
        <a:ProblemHeaderQName>a:Action</a:ProblemHeaderQName>
     </s:Detail>
  </s:Fault>
 </s:Body>
</s:Envelope>

In blogs, they are asking to add Soap Action . How to Add Soap Action in my request below:

 <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wkus="http://XXX.XX.XXXX/IXXXXXX">
  <soap:Header />
  <soap:Body>
  <ns1:AddOrderInfromation>
     <!--Optional:-->
     <ns1:inputsting>
<ns1:AddOrderInfromation>
  <ns1:OrderNo>4500146</ns1:OrderNo>
  <ns1:OrderDate>08/22/2014</ns1:OrderDate>
  <ns1:TotalItems>1</ns1:TotalItems>         
</ns1:AddOrderInfromation>
 </ns1:inputsting>
 </ns1:AddOrderInfromation>

Please Suggest. Thanks in Advance

This is probably a WS-A addressing issue.

In the WS-A tab of your Request, check "Enable WS-A addressing". You may also have to check "Add default was:To".

Your web service is returning a SOAPFault which is saying that web service expects a SOAP Action http header. In order to add a SOAP action in your SOAP request from SOAPUI you must add a http header named SOAPAction , to do so do the next step:

  • In the bottom of your SOAP test request there are some tabs ( Header(0) , Attachments(0) ...), open the Header(0) tab.Then using + add button, add a header with SOAPAction name and your value:

在此处输入图片说明

hope this helps,

I had this problem too, and solved it by enabling WS-A addressing in SopaUI. screenshot from SoapUI

This error also occurs due to improper syntax in xml request

For Eg : It will throw same error if closing tag is missing

    </soap:Body>
</soap:Envelope>

in below code

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wkus="http://XXX.XX.XXXX/IXXXXXX">
    <soap:Header />
    <soap:Body>
        <ns1:AddOrderInfromation>
            <ns1:inputsting>
                <ns1:AddOrderInfromation>
                    <ns1:OrderNo>4500146</ns1:OrderNo>
                    <ns1:OrderDate>08/22/2014</ns1:OrderDate>
                    <ns1:TotalItems>1</ns1:TotalItems>         
                </ns1:AddOrderInfromation>
            </ns1:inputsting>
        </ns1:AddOrderInfromation>

or if having unexpected syntax like this

    <ns1:OrderNo>4500146**<ns1:OrderNo>**

instead of

    <ns1:OrderNo>4500146**</ns1:OrderNo>**

or this

    <ns1:**OrderNo**4500146</ns1:OrderNo>

instead of

    <ns1:**OrderNo>**4500146</ns1:OrderNo>

I have just encountered similar problem. And I solved the issue like below;

https://blabla.com/xyz.svc?wsdl -->go to the wsdl url on browser and you will see some actions inside methods;

在此处输入图片说明

I use python for development and i added soapAction like below;

headers = {'Content-type': 'text/xml;charset=UTF-8',
           'SOAPAction': 'http://tempuri.org/IArasCargoIntegrationService/GetQueryXML'
           }

and it worked.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM