我真的很难理解WSO2 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/user@emailaddress.com/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/user@emailaddress.com/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表示。我甚至没有在这里得到如此多的错误。没有日志显示有关调解或任何事情的任何细节。我很迷茫,即将放弃。关于我接下来应该尝试什么的暗示?
答案 0 :(得分:3)
我认为你在“inSequence”结束时错过了“发送”......基本上你并没有在任何地方发送你精心设计的信息:-)。请参阅:http://synapse.apache.org/userguide/samples/sample800.html。