empfangen von soap-Ausnahme beim aufrufen von SAP-webservice(HTTPS) in BizTalk 2010 mit WSBasicHTTPBinding
Bin ich den Aufruf einer SAP-webservice(HTTPS) in BizTalk 2010. Ich habe generierten schema mit konsumieren von wcf-service-Assistenten. Wenn ich den Aufruf der webservice-durch die übergabe der angeforderten schema-Instanz bekomme ich folgende Fehler Meldung:
<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, den Aufruf webservice mit SOAPUI tool und ich bekomme eine richtige Antwort. Ich verfolgte die Anforderung gehen von BizTalk sendPort (Aufruf von webservice-overHTTP-Seife mit wcfBasicHTTP Bindung) mithilfe von Fiedler, die Anfrage sieht gut aus und arbeitet in SOAPUI. Ich habe keine Ahnung warum ich bekomme dieses Besondere soap-Fehler in BizTalk.
Jede Hilfe ist willkommen
Danke.
BizTalk Fiddler ' Dump (HTTP-header-Reihenfolge umgestellt)
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>
- Könnten Sie bitte post die 2 raw-Fiddler-Anforderungen (arbeiten, SoapUI und scheiterte BizTalk)? Dank
- folgende raw-Anfrage zurückverfolgt form biztalk von fiddler: POST localhost:8888 HTTP/1.1 Content-Type: text/xml; charset=utf-8 SOAPAction: "sap.com/xi/WebService/soap1.1" Host: "localhost:8888" Content-Length: 2296 Expect: 100-continue " Accept-Encoding: gzip, deflate Connection: Keep-Alive <s:Envelope xmlns:s="schemas.xmlsoap.org/soap/envelope/... xmlns:ns0="urn:sap-com:document:sap:rfc:functions"> ........ </ns0:z></s:Body></s:Envelope>
- Unten ist roh Anfrage von SOAPUI zu fiddler: 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>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kann nicht sehen, dass etwas eklatant offensichtlich, möglicherweise andere als die shoutcase von utf-8 in die charset-Content-Type-header.
Und ich habe angenommen, dass der soap-body Nutzlasten (........) identisch sind -, können Sie überprüfen, ob die Soap-Aktion in der Meldung angegeben wird, sowie die header - ich bin mir nicht sicher, ob SAP-web-service SOAP 1.1 oder 1.2 WCF-Soap-Aktionen im HTTP-header oder SOAP-header?
Eine mögliche Sache, die Sie versuchen zu verwenden, die XmlTransmit senden pipeline auf Ihrem sende-port und
Experimentieren Sie mit Bewahren Stückliste (D. H. Hinzufügen /Entfernen von UTF BOM auf die Nutzlast) und auch versuchen Sie die Ziel-charset eingestellt shoutcase UTF-8.
Als letzten Ausweg, anstelle der Verwendung von WebServices, versuchen Sie, den Konsum-Adapter-Service für SAP - see hier und hier
Das Problem behoben worden ist. Ich veränderte die url des Endpunkts für eine, die wurde von SOAPUI.