1

この前に質問をしました。私のサービス構成は次のとおりです。

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="UnpayBilling_Task"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <class name="com.coship.mediator.UnpayBillingMediator"></class>
         <log level="full" />
      </inSequence>
      <outSequence>
         <log level="full" />
         <send />
      </outSequence>
      <endpoint>
         <address uri="http://172.21.13.153:18080/aaa/services/receiveMsg" />
      </endpoint>
   </target>
</proxy>

拡張メディエーターUnpayBillingMediator取引ファイルを作成します。クラスはファイル名を返し、リクエストを service に送信しますhttp://172.21.13.153:18080/aaa/services/receiveMsg。サービスの入力メッセージはありません。毎日 13:30 にサービスを実行したい。新しいスケジュールされたタスクを追加しようとしました。 soapAction:urn:mediate,to:http://localhost:8280/services/UnpayBilling?wsdl, Cron: 30 13 * * *.しかし、それは動作しませんか?このスケジュールされたタスクを設定する方法を教えてもらえますか?

SimpleQuartz Server name not in pinned servers list. Not starting Task

「固定サーバー」の設定方法もわかりません。

4

3 に答える 3

1

デフォルトのメッセージ インジェクター タスクが WSO2 ESB でどのように機能するかを説明しましょう。

基本的に、指定されたプロパティ(例:メッセージペイロード、アドレスなど)でメッセージを作成し、構成された間隔でメインシーケンスに挿入します。

したがって、あなたの場合、指定されたToアドレスまたは特定のメッセージ本文を持つメッセージをフィルタリングして転送するように、メインシーケンスを変更する必要があります。

最も簡単な方法は、WSO2ESB メイン シーケンスにあるデフォルト フィルターを変更して、アドレスをフィルター処理し、バックエンド サービスに送信することです。

例: フィルターを次のように変更します。

<filter xmlns:ns="http://org.apache.synapse/xsd
        xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
        xmlns:ns3="http://org.apache.synapse/xsd"
        source="get-property('To')"
        regex="http://localhost:8280/services/UnpayBilling.*" >
        ...
于 2012-05-24T09:31:46.040 に答える
1

次のESB構成を見てください

Test という名前の Proxy と MyTask という名前の Task を取得します。ここで、MyTask がメイン シーケンスにメッセージを挿入するときに、"To" プロパティをフィルター処理し、それが Task から設定した値である場合は、それをプロキシ サービスに送信します。

構成:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://ws.apache.org/ns/synapse">
    <registry provider="org.wso2.carbon.mediation.registry.WSO2Registry">
        <parameter name="cachableDuration">15000</parameter>
    </registry>
    <proxy name="Test" transports="https http" startOnLoad="true" trace="disable">
        <target>
            <inSequence>
                <log level="full">
                    <property name="IN" value="IN"/>
                </log>
                <drop/>
            </inSequence>
        </target>
    </proxy>
    <sequence name="fault">
        <log level="full">
            <property name="MESSAGE" value="Executing default 'fault' sequence"/>
            <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
            <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
        </log>
        <drop/>
    </sequence>
    <sequence name="main">
        <in>
            <filter xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" source="get-property('To')" regex="http://localhost:8280/services/Test">
                <then>
                    <send>
                        <endpoint>
                            <address uri="http://localhost:8280/services/Test"/>
                        </endpoint>
                    </send>
                </then>
                <else/>
            </filter>
        </in>
        <out>
            <drop/>
        </out>
        <description>The main sequence for the message mediation</description>
    </sequence>
    <task name="MyTask" class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz">
        <trigger count="1" interval="4"/>
        <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="to" value="http://localhost:8280/services/Test"/>
        <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
            <msg xmlns="">FROM_TASK</msg>
        </property>
    </task>
</definitions>
于 2012-05-24T14:52:54.263 に答える
1

cron 式に問題があります。http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontriggerを参照してください。

于 2012-05-26T04:17:50.767 に答える