0

WSO2 ESB がどのように機能するのかを理解するのに本当に苦労しています。ドキュメント (特にグラフィカル ツールのドキュメント) が非常に不足しています。誰かが私を正しい道に導くことができることを願っています。

RPC/Encoded 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 を使用して呼び出してみます。

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 表現です。ここでエラーが発生することさえありません。調停などに関する詳細を示すログはありません。私はかなり迷っていて、ただあきらめようとしています。ここで次に何を試すべきかについてのヒントはありますか?

4

1 に答える 1

3

「inSequence」の最後に「send」がないと思います...基本的に、慎重に作成されたメッセージをどこにも送信していません:-)。http://synapse.apache.org/userguide/samples/sample800.htmlを参照してください。

于 2012-10-08T18:54:40.753 に答える