2012-10-08 62 views
0

我真的很難理解WSO2 ESB是如何工作的。文檔 - 尤其是圖形工具 - 非常需要。我希望有人能指出我走對了路。REST調用通過WSO2的代理SOAP API ESB

我有一個RPC /編碼WSDL的SOAP API。我是能夠成功地將其設置爲一個基於WSDL的代理,並於ESB管理面板中進行測試的工具表明,它工作得很好 - 我能得到一個會議回來,等

我去了設置一個API來處理REST請求並將它們轉發到SOAP 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調用它:

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端點的login()方法的輸出的POX表示。我甚至沒有像這裏的錯誤那麼多。沒有日誌向我顯示關於調解或任何事情的任何細節。我很迷茫,即將放棄。這裏有什麼我應該嘗試的提示?

回答

3

我認爲你在「inSequence」的末尾缺少「發送」......基本上,你不會發送任何地方精心製作的消息:-)。參見:http://synapse.apache.org/userguide/samples/sample800.html

+0

啊 - 好吧,我覺得啞巴。我以爲我已經包括了這一點。然而,即使包括髮送,它仍然給了我同樣的錯誤。然後我意識到它可能與curl URL中的電子郵件地址有關。所以我URL編碼的地址,現在我得到了代理API的迴應。如此甜蜜!謝謝! –