2011-06-14 4 views
4

Mule 3에서 cxf : jaxws-client를 사용하고 있으며 웹 서비스 호출에서 얻는 응답은 ReleasingInputStream 유형입니다. http-response-to-message-transformer를 추가하려고 시도했지만 오류가 발생합니다 .- 내가 ReleasingInputStream과 반대로 객체로 응답을 검색하는 방법을 아는 사람이 있습니까?Mule CXF Marshall Response

감사합니다.

답변

1

나는이 같은 문제를 안고있었습니다. 그래서 String 또는 같은 WS 응답을 받고,

<mule> 
    <object-to-string-transformer name="ObjectToString"/> 

    <flow> 
     ... 
     ... 
     ... 
     <cxf:jaxws-client clientClass="com.my.ClientClass" 
         port="MyPort" 
         wsdlLocation="classpath:MyWsdl.wsdl" 
         operation="MyOperation" /> 
     <outbound-endpoint address="http://some.address/path/to/service" 
         exchange-pattern="request-response" 
         responseTransformer-refs="ObjectToString" /> 
     ... 
     ... 
     ... 
    </flow> 
</mule> 
+0

환호성 응답이 응답 또는 적절한 개체로 문자열로 반환됩니까? 감사. – JanusFox81

1

잭스 - WS-클라이언트의 전체 포인트는 마샬링 자바 객체를받을 수 있습니다 : 나는이 같은 아웃 바운드 엔드 포인트의 응답 측에 ObjectToString 변압기를 추가하여 해결 ReleasingInputStream은 옵션이 아니어야합니다. 하나의 작업에 WS 클라이언트를 기대하는 것처럼 잭스 - WS 클라이언트 > "작업"- 당신이 페이로드로 올바른 자바 객체를 얻는 될 < 아웃 바운드 엔드 포인트 >의 내부를 넣어 :

는 < CXF를 확인하십시오. 이 문제를 해결하기

3

는 기대 수익률

<outbound-endpoint exchange-pattern="request-response" address="http://localhost:8083/OutboundService" > 
     <cxf:jaxws-client 
      clientClass="com.xyz.services.WSServices" 
      port="WSServicesSoap" 
      wsdlLocation="classpath:wsdl-file.wsdl" 
      operation="GimmeDataOperation" /> 
    </outbound-endpoint> 

ReleasingInputStream 출력을 생성 다음 코드

<cxf:jaxws-client 
     clientClass="com.xyz.services.WSServices" 
      port="WSServicesSoap" 
      wsdlLocation="classpath:wsdl-file.wsdl" 
      operation="GimmeDataOperation" /> 
    <outbound-endpoint exchange-pattern="request-response" address="http://localhost:8083/OutboundService" /> 

을 수정함으로써 <outbound-endpoint> 섹션 (NOT IT를하기 전에) 내부의 <cxf-client>를 넣어 목적.