2012-04-09 5 views
3

Ich rufe einen SAP-Webdienst (HTTPS) in BizTalk 2010. Ich habe das Schema mit dem Consume-Assistenten generiert. Als ich den Webservice aufrufen, indem Sie die gewünschte Schema Instanz zu übergeben, erhalte ich folgende Fehlermeldung:erhalten Soap-Ausnahme beim Aufrufen von SAP-Webdienst (HTTPS) in BizTalk 2010 mit WSBasicHTTPBinding

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

Ich habe versucht Aufruf webservice SOAPUI Tool und ich eine richtige Antwort erhalten. Ich verfolgte die Anfrage aus BizTalk SendPort (Webservice overHTTP-Soap mit wcfBasicHTTP Bindung) mit Fiddler gehen, die Anfrage sieht gut aus und funktioniert in SOAPUI. Ich habe keine Ahnung, warum ich diesen speziellen Seifenfehler in BizTalk erhalte. Jede Hilfe wird geschätzt Danke.

BizTalk Fiddler Dump (HTTP-Header neu angeordnet)

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

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

Könnten Sie bitte die 2 rohen Fiddler-Anfragen (funktionierende SoapUI und fehlgeschlagene BizTalk) posten? Danke – StuartLC

+0

folgende ist unformatierte Anfrage verfolgt von biztalk von fiddler: POST http: // localhost: 8888/HTTP/1.1 Inhalt-Typ: text/xml; charset = utf-8 Soapaction: "http://sap.com/xi/WebService/soap1.1" Host: localhost: 8888 Content-Length: 2296 erwarten: 100-Continue Accept-Encoding: gzip, deflate Verbindung: Keep-Alive ........ user1321340

+0

Unten ist roh Anfrage von SOAPUI Fiddler: POST http: // localhost: 8888/HTTP/1.1 Accept-Encoding: gzip, deflate Inhalt- Typ: text/xml; charset = UTF-8 SOAPAction: "http://sap.com/xi/WebService/soap1.1" Inhaltslänge: 2417 Host: localhost: 8888 Proxy-Verbindung: Keep- Alive Benutzer-Agent: Apache-HttpClient/4.1.1 (Java 1.5) .... user1321340

Antwort

-2

Das Problem behoben wurde sehen. Ich änderte die URL des Endpunkts zu einer, die von SOAPUI verwendet wurde.

+3

https://xkcd.com/979/ – kai

+1

Wie hast du es gelöst ?? Können Sie uns bitte sagen, was die ursprüngliche URL und die letzte URL des Endpunkts waren? Was war die Ursache des Fehlers und wie können wir das verhindern? – kai

0

Ich kann nichts eklatant, möglicherweise andere als die shoutcase von utf sehen -8 im Charset-Inhaltstyp-Header.

Und ich habe angenommen, die Soap-Body-Payloads (........) sind identisch - Sie könnten überprüfen, ob die Soap-Aktion in der Nachricht sowie die Kopfzeile angegeben ist - ich bin mir nicht sicher, ob SAP Webservice SOAP 1.1 oder 1.2 WCF Soap Actions in HTTP header or SOAP header?

Eine mögliche Sache zu versuchen, die XMLTransmit verwenden Pipeline auf dem Sendeport senden und Experiment mit BOM-Konserve (dh hinzufügen/entfernen Sie die UTF BOM auf der Nutzlast) und auch versuchen, Der Zielzeichensatz wurde auf UTF-8 eingestellt.

Als letzten Ausweg, statt WebServices zu verwenden, versuchen die für SAP-Adapter-Service Verbrauchen - here und here

Verwandte Themen