2012-04-09 1 views
3

BizTalk 2010에서 SAP 웹 서비스 (HTTPS)를 호출하고 있습니다. wcf 서비스 마법사를 사용하여 스키마를 생성했습니다.WSBasicHTTPBinding을 사용하여 BizTalk 2010에서 SAP webservice (HTTPS)를 호출하는 동안 SOAP 예외가 발생합니다.

<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 도구를 사용하여 웹 서비스를 호출 시도하고 내가 적절한 응답을받지 : 나는 요청 된 스키마 인스턴스를 전달하여 웹 서비스를 호출 할 때, 나는 오류 메시지 다음 수신. 피들러를 사용하여 BizTalk sendPort (wcfBasicHTTP 바인딩을 사용하여 webservice overHTTP-soap을 호출하는) 요청을 추적 한 결과 요청이 잘 보이고 SOAPUI에서 작동합니다. 나는 BizTalk에서 왜 이런 비누 잘못을 받았는지에 대한 단서가 없습니다. 도움을 주신 분 감사합니다.

BizTalk 피들러는

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 피들러 내가 UTF의 shoutcase보다는 가능한 다른 눈부시게 명백한 아무것도를 볼 수 없습니다

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

원시 피들러 요청 (SoapUI 및 실패한 BizTalk 작동)을 2 개 게시 할 수 있습니까? 감사합니다 – StuartLC

+0

다음은 원시 요청 추적 바이블 토크 피들러입니다 : POST http : // localhost : 8888/HTTP/1.1 Content-Type : text/xml; 문자셋 = UTF-8 이 SOAPAction : "http://sap.com/xi/WebService/soap1.1" 호스트 : 로컬 호스트 : 8888 콘텐츠 길이 : 2296 가 예상 : 100 - 계속 수락 - 인코딩 : gzip을을, 수축 연결 : 연결 유지 <봉투 : xmlns : s = "http://schemas.xmlsoap.org/soap/envelope/"> 아래 ........ user1321340

+0

피들러하는 SOAPUI 원시 요청입니다 : POST에 http가 : // localhost를 : 8888/HTTP/1.1 수락 - 인코딩 : gzip, 수축 내용 - 유형 : 텍스트/xml; charset = UTF-8 SOAPAction : "http://sap.com/xi/WebService/soap1.1" 콘텐츠 길이 : 2417 호스트 : localhost : 8888 프록시 연결 : Alive 사용자 에이전트 : Apache-HttpClient/4.1.1 (java 1.5) .... -ENV : Body> user1321340

답변

-2

참조하십시오. 끝점의 URL을 SOAPUI에서 사용한 URL로 수정했습니다.

+3

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

+1

어떻게 해결 했습니까 ?? 엔드 포인트의 원래 URL과 최종 URL이 무엇인지 알려주실 수 있습니까? 오류의 근본 원인은 무엇이며 어떻게 예방할 수 있습니까? – kai

0

덤프 (HTTP 헤더 순서를 재 배열) 덤프로 charset Content Type 헤더에서 -8입니다.

그리고 비누 바디 페이로드 (........)가 동일하다고 가정했습니다. 비누 액션이 헤더와 함께 메시지에 지정되었는지 확인할 수 있습니다. SAP 웹 서비스는 SOAP 1.1 또는 1.2 WCF Soap Actions in HTTP header or SOAP header?

시도하는 한 가지 일이 시도 또한 BOM을 유지하여 송신 포트 및 실험에 송신 파이프 라인 (즉, 추가/페이로드에 UTF의 BOM을 제거)하고 XmlTransmit을 사용하는 것입니다 타겟 캐릭터 셋은 UTF-8을 외쳐야한다. 최후의 수단으로

대신 웹 서비스를 사용하는의는 SAP에 대한 어댑터 서비스를 사용하려고 - 문제가 해결되었습니다 herehere