0

こんにちは、次のエンドポイントを指すプロキシ「myfirst_proxy」を作成しようとしました: test_myapp

このエンドポイントが指しているhttp://server1/myapp/service/test.php?wsdl(URL をテストしたところ、正常に返されました)

sequence : log and drop を作成し、プロキシ構成の Out Sequence に追加しました。

テストする場合のために、9時以降2分ごとに実行するスケジュールされたタスクを追加しました。

 <task name="testtask" class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz">
    <trigger cron="0 0/2 9 * * ?"/>
    <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
        <sendText xmlns=""/>
    </property>
    <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="to" value="http://myesbserver:8280/services/myfirst_proxy"/>
    <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="soapAction" value="urn:MYAPP#sendText"/>
    <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="format" value="soap11"/>
</task>

アクセスhttp://myesbserver:8280/services/myfirst_proxy すると、次のエラーが表示されます。オペレーションのエンドポイント参照 (EPR) が見つかりませんでした。この EPR が以前に到達可能だった場合

しかし、最後に ?wsdl を追加すると、WSDL ファイルが表示されます。

ログ ファイルに、次のスケジュールされたタスクが実行されていることがわかります。

INFO - LogMediator To: http://myesbserver:8280/services/myfirst_proxy, WSAction: urn:MYAPP#sendText, SOAPAction: urn:SLATE#sendText, MessageID: urn:uuid:87b2695a-ce95-43fa-b7d2-3d638c3d5f20, Direction: request, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><sendApproval/></soapenv:Body></soapenv:Envelope>

App Server が ESB プロキシからリクエストを受信したかどうかを確認しましたが、受信していませんでした。ESB に付属の Try ツールを使用して、body タグの間に文字列を挿入して実行しました。応答は成功しました。

私の質問は、私のタスクがリモート WSDL と通信できるようにするステップが欠けているのでしょうか?

乾杯。

4

2 に答える 2

0

そのようなタスクを定義します。

 <task name="testtask" class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz">

    <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="to" value="http://myesbserver:8280/services/myfirst_proxy/getparam?a=1"/>  
        </task>

次に、メインシーケンスでプロキシにルーティングします。

<sequence xmlns="http://ws.apache.org/ns/synapse" name="main">
   <in>
      <log level="full"/>
      <filter xmlns:ns="http://org.apache.synapse/xsd"
              xmlns:ns3="http://org.apache.synapse/xsd"
              source="get-property('To')"
              regex=".*/myfirst_proxy.*">
         <then>
            <property name="OUT_ONLY" value="true"/>
            <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
            <log level="custom">
               <property name="***********MESSAGE******" value="executing myfirst Proxy Sequence"/>
            </log>
            <send/>
            <drop/>
         </then>
         <else/>
      </filter>
于 2012-08-17T11:21:47.457 に答える
0

こんにちは、エンドポイントの URL が間違っています。実際のサービス エンドポイントを指す必要があります。wsdl の URL ではありません。

http://server1/myapp/service/test.php
于 2012-08-16T18:22:16.597 に答える