web-dev-qa-db-ja.com

SOAP SoapUIでのWCFサービスのテスト中のアクション不一致エラー

SOAPUIのサンプル入力を使用してWCFサービスをテストしています。実行すると、SOAP以下のような例外が発生します。

<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>

ブログでは、Soap Actionの追加を求めています。以下のリクエストにSOAPアクションを追加する方法:

 <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>

提案してください。前もって感謝します

17
Senthil Arasu

これはおそらくWS-Aのアドレス指定の問題です。

リクエストの[WS-A]タブで、[WS-Aアドレッシングを有効にする]をオンにします。また、「デフォルトを追加:To」をチェックする必要がある場合もあります。

25
Ramsey

WebサービスがSOAPFaultを返しています。これは、WebサービスがSOAPアクションのHTTPヘッダーを期待していることを示しています。 SOAPUIからのSOAPリクエストにSOAPアクションを追加するには、SOAPActionという名前のhttpヘッダーを追加する必要があります。これを行うには、次の手順を実行します。

  • SOAPテストリクエストの下部にいくつかのタブ(Header(0)Attachments(0) ...)があり、Header(0)タブを開きます。次に、+追加ボタン、SOAPActionの名前と値を含むヘッダーを追加します。

enter image description here

お役に立てれば、

6
albciff

このエラーは、xmlリクエストの構文が不適切なためにも発生します

例:終了タグがない場合、同じエラーをスローします

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

以下のコードで

<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>

または、このような予期しない構文がある場合

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

の代わりに

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

またはこれ

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

の代わりに

    <ns1:**OrderNo>**4500146</ns1:OrderNo>
3
Rajat Jarvis

私にもこの問題があり、SoapUIでWS-Aアドレス指定を有効にすることで解決しました。 SoapUIからのスクリーンショット

2
gummiorn