2012-10-08 3 views
0

WSO2 ESB의 작동 방식을 이해하는 데 정말 어려움을 겪고 있습니다. 특히 그래픽 도구의 경우 설명서가 심각하게 부족합니다. 나는 누군가가 나를 올바른 길로 인도 할 수 있기를 바라고 있습니다.WSO2를 통해 프록시 된 SOAP API에 대한 REST 호출 ESB

RPC/인코딩 된 WSDL이있는 SOAP API가 있습니다. WSDL 기반 프록시로이를 성공적으로 설정할 수 있었으며 ESB 관리자 패널에서 테스트 도구를 사용하여 정상적으로 작동하고 있음을 나타냅니다. 세션을 다시 가져올 수 있습니다.

REST 요청을 처리하고 SOAP API에 전달할 API를 설정하는 것. 이를 테스트하기 위해 login() 함수로 시작했다. API의 소스보기에있는 리소스로 아래 내용을 볼 수 있습니다.

<api xmlns="http://ws.apache.org/ns/synapse" name="VRRestAPI" context="/vrrest"> 
    <resource methods="GET" uri-template="/session/{username}/{password}"> 
     <inSequence> 
     <log level="full"/> 
     <payloadFactory> 
      <format> 
       <m0:login xmlns:m0="http://services.samples"> 
        <m0:request> 
        <m0:username>$1</m0:username> 
        <m0:password>$2</m0:password> 
        </m0:request> 
       </m0:login> 
      </format> 
      <args> 
       <arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('uri.var.username')"/> 
       <arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('uri.var.password')"/> 
      </args> 
     </payloadFactory> 
     </inSequence> 
     <outSequence> 
     <log level="full"/> 
     <send/> 
     </outSequence> 
    </resource> 
</api> 

괜찮 았는데 API가 실행 중입니다.

curl -v http://10.0.6.223:8280/vrrest/session/[email protected]/password 

을하고 다음을 얻을 : 그래서 나는 곱슬 곱슬 사용하여 호출하려고

* About to connect() to 10.0.6.223 port 8280 (#0) 
* Trying 10.0.6.223... connected 
* Connected to 10.0.6.223 (10.0.6.223) port 8280 (#0) 
> GET /vrrest/session/[email protected]/password HTTP/1.1 
> User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8r zlib/1.2.3 
> Host: 10.0.6.223:8280 
> Accept: */* 
> 
< HTTP/1.1 202 Accepted 
< Date: Fri, 05 Oct 2012 21:06:54 GMT 
< Server: Synapse-HttpComponents-NIO 
< Transfer-Encoding: chunked 
< 
* Connection #0 to host 10.0.6.223 left intact 
* Closing connection #0 

은 무엇을보고 기대하고있어 내 SOAP 엔드 포인트의 로그인() 메소드의 출력의 POX 표현입니다. 나는 심지어 여기에 오류가 많이 미치지도 않는다. 중재 또는 기타 사항에 대한 세부 정보를 보여주는 로그가 없습니다. 나는 꽤 길을 잃고 그냥 포기하려고합니다. 다음에 시도해야 할 것에 대한 힌트가 있습니까?

답변

3

"inSequence"의 끝 부분에 "보내기"가 누락 된 것 같습니다 ... 기본적으로 당신은 신중하게 만들어진 메시지를 어디에도 보내지 않습니다 :-). 참조 : http://synapse.apache.org/userguide/samples/sample800.html.

+0

아 - 글쎄, 나는 바보 같아. 나는 그것을 포함 시켰다고 생각했다. 그러나, 보내기를 포함 후에도, 그것은 여전히 ​​나에게 같은 오류를 주었다. 나는 컬링 URL의 이메일 주소와 관련이 있다는 것을 깨달았다. 그래서 URL 인코딩 주소, 그리고 지금은 프록시 API에서 응답을 받고 있어요. 그래서, 달콤한! 감사! –

관련 문제