2013-11-21 6 views
0

SAP와 Mule Studio를 연결하려고 할 때. 오류가 발생했습니다.Mule Studio : 메시지가 SAP 객체가 아니며 "String"유형입니다

org.mule.api.transport.DispatchException : 메시지가 SAP 개체가 아니며 "String"유형입니다. 이 커넥터 "connector.sap.mule.default"에 대해 변환기를 점검하십시오. 엔드 포인트를 통해 이벤트를 라우팅하지 못했습니다. DefaultOutboundEndpoint {endpointUri = sap : // function,

도와주세요.

enter image description here

내 xml 파일

.....

<?xml version="1.0" encoding="UTF-8"?> 

<mule xmlns:sap="http://www.mulesoft.org/schema/mule/sap" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd 
http://www.mulesoft.org/schema/mule/sap http://www.mulesoft.org/schema/mule/sap/current/mule-sap.xsd"> 
    <flow name="SapFlow1" doc:name="SapFlow1"> 
     <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="getSapDetails" doc:name="HTTP"/> 
     <sap:outbound-endpoint type="function" rfcType="srfc" responseTimeout="10000" jcoAsHost="hostname" jcoUser="username" jcoPasswd="password" jcoSysnr="00" jcoClient="100" jcoLang="EN" doc:name="SAP"/> 
    </flow> 
</mule> 
+0

XML의 설정하십시오? –

+0

@DavidDossot : 안녕 데이비드, 위의 XML 코드를 추가했습니다. 확인해주세요. –

답변

0

하기는 구성의 비트를 놓치고있어. documentation에서 :

입력 뮬 메시지

아웃 바운드 - 엔드 포인트는 뮬 메시지는 다음과 같은 페이로드 중 하나를 수행 예상 :

  • org.mule.transport.sap.SapObjectinstance. 이 Java POJO는
    • (BAPI 호출의 경우) 또는 SapType.IDOC (IDoc의 경우) 유형입니다.
    • 값 : 특정 JCo 오브젝트는 IDocs의 경우 페이로드 유형 (com.sap.conn.idoc.IDocDocument 또는 com.sap.conn.idoc.IDocDocumentList)과 BAPI 호출의 경우 com.sap.conn.jco.JCoFunction입니다.
  • 기타 모든 개체. XML 정의에 속성 definitionFile을 제공하거나 XML에 임베드해야합니다.

페이로드는 XML 문자열로 변환하거나 다음 변압기와 SapObject로 스트리밍 할 수 있습니다

<!-- IDocs --> 
<sap:xml-to-idoc/> 

<!-- BAPI calls --> 
<sap:xml-to-function/> 
+0

Soory for late reply ... 우선 HTTP 요청으로 SAP 함수를 호출 할 수 있습니다. 내가 함수를 부르는 방식은 옳은가 틀린가? ??? –

+0

In은 흐름에서 시작하는 데 사용하는 전송과 상관이 없습니다. 인바운드 엔드 포인트 이후에 흐름에서 사용하는 메시지 프로세서에 올바른 매개 변수를 올바르게 전달하면 중요합니다. –

+0

David, 위의 코드를 XML 파일에 추가했습니다. 여전히 동일한 오류가 발생합니다. 이걸 도와주세요. –