3

BizTalk2010でSAPWebサービス(HTTPS)を呼び出しています。consumewcfサービスウィザードを使用してスキーマを生成しました。要求されたスキーマインスタンスを渡してWebサービスを呼び出すと、次の障害メッセージが表示されます。

<SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <faultcode>SOAP:Server</faultcode>
      <faultstring>Server Error</faultstring>
      <detail>
        <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
          <context>XIAdapter</context>
          <code>ADAPTER.JAVA_EXCEPTION</code>
          <text><![CDATA[ com.sap.aii.af.service.cpa.CPAException: com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=null;TS=null;AN=null;ANS=null;    at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.checkForError(CommonLookup.java:53)  at com.sap.aii.af.service.cpa.InboundRuntimeLookup.getBinding(InboundRuntimeLookup.java:411)    at com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getBinding(AbstractLookupManager.java:714)  at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:427)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)     ….. ……
          ]]></text>
        </s:SystemError>
      </detail>
    </SOAP:Fault>

SOAPUIツールを使用してWebサービスを呼び出そうとしましたが、適切な応答が返されます。Fiddlerを使用してBizTalksendPort(wcfBasicHTTPバインディングを使用してWebサービスoverHTTP-soapを呼び出す)から送信される要求をトレースしました。要求は正常に見え、SOAPUIで機能します。BizTalkでこの特定の石鹸の障害が発生する理由についてはわかりません。どんな助けでもありがたいですありがとう。

BizTalk Fiddler Dump(HTTPヘッダーの順序が再配置されました)

POST localhost:8888 HTTP/1.1 
Accept-Encoding: gzip, deflate 
Content-Type: text/xml; charset=utf-8 
SOAPAction: "sap.com/xi/WebService/soap1.1"; 
Content-Length: 2296 
Host: localhost:8888 
Expect: 100-continue 
Connection: Keep-Alive 

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ns0:z xmlns:ns0="urn:sap-com:document:sap:rfc:functions"> 
........ 
</ns0:z>
</s:Body>
</s:Envelope>

SOAPUIフィドラーダンプ

POST localhost:8888 HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "sap.com/xi/WebService/soap1.1"; 
Content-Length: 2417 
Host: localhost:8888 
Proxy-Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 

<SOAP-ENV:Envelope xmlns:SOAP-ENV="schemas.xmlsoap.org/soap/envelope/"; 
xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns0:z xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
 ....
</ns0:z>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
4

2 に答える 2

0

おそらく、charset Content Type ヘッダーの utf-8 の叫び声以外には、明白に明らかなものは何も見えません。

そして、SOAP 本体のペイロード (........) は同一であると想定しました。メッセージとヘッダーで SOAP アクションが指定されているかどうかを確認してください。SAP Web サービスがHTTP ヘッダーまたは SOAP ヘッダーのSOAP 1.1 または 1.2 WCF ソープ アクション?

1 つの可能な方法は、送信ポートで XmlTransmit 送信パイプラインを使用し、Preserve BOM (つまり、ペイロードで UTF BOM を追加/削除) を試し、さらにターゲット文字セットをシャウトケース UTF-8 に設定して試すことです。

最後の手段として、WebServices を使用する代わりに、Consume Adapter Service for SAP を試してください -ここここを参照してください。

于 2012-04-09T12:26:32.267 に答える
-2

問題は解決されました。エンドポイントの URL を SOAPUI で使用されるものに変更しました。

于 2012-04-11T11:03:40.327 に答える