0

これに対する回答をフォーラムで検索しました。ほぼ同じ質問が 1 つ見つかりましたが、その答えにはまだ疑問が残りました。

ほぼ同じ投稿がここに見つかりました:

Mule - Web サービスを使用するフローをスケジュールする

このポスターは、私が抱えている問題をよく説明しています。

私はMuleも初めてで、まったく同じことをしようとしています。操作仕様は本質的にペイロードだと思っていたので、ペイロードが必要だとは気づきませんでした。

cxf:jaxws-client を含むフローがあり、クライアントがサービスの URL と操作「listTest」を指定していることに注意してください。

サービス リクエストを実際に実行するには、他にどのようなペイロードを指定する必要がありますか?

イベント ジェネレーターにダミーのペイロードを追加しようとしましたが (参考記事で提案されているように)、違いはありません。

ミュール アプリケーションを実行し、「テスト オーディター Web サービス」を (wireshark を使用して) 監視すると、wsdl に対して 4 つの要求が送信され、wsdl が返されたことがわかりますが、listTest 操作が呼び出されていることは実際にはわかりません。

私のフローは次のとおりです。

   <http:connector name="HTTP_HTTPS" cookieSpec="netscape"
    validateConnections="true" sendBufferSize="0" receiveBufferSize="0"
    receiveBacklog="0" clientSoTimeout="10000" serverSoTimeout="10000"
    socketSoLinger="0" doc:name="HTTP\HTTPS" />
    <flow name="TestAuditorClient_CheckerFlow1" doc:name="TestAuditorClient_CheckerFlow1">
    <quartz:outbound-endpoint jobName="GetTestList"
        repeatInterval="10000" responseTimeout="10000" doc:name="Quartz">
        <quartz:event-generator-job jobGroupName="GetTestList" />
    </quartz:outbound-endpoint>
    <cxf:jaxws-client operation="listTest"
        clientClass="server.TestService_Service" port="TestServicePort"
        wsdlLocation="http://192.168.66.7:8080/TestAuditorWebApp/TestService?wsdl"
        doc:name="SOAPY" />
    <outbound-endpoint
        address="http://192.168.66.7:8080/TestAuditorWebApp/TestService"
        doc:name="HTTP" />
    <logger message="Received HTTP Response #[payload]" level="INFO"
        doc:name="Logger" />
    <!-- <outbound-endpoint exchange-pattern="request-response" address="http://192.168.66.17:8080/TestAuditorWebApp/TestService" 
        doc:name="HTTP"/> -->
    <file:outbound-endpoint path="C:\tmp"
        outputPattern="#[function:datestamp:dd-MM-yy]_#[function:systime].txt"
        responseTimeout="10000" doc:name="Output File" />
</flow>

私はラバが初めてであるだけでなく、スタックオーバーフローも初めてです。したがって、関連する質問をするためのより良い方法があれば、アドバイスと言い訳をしてください.

前もって感謝します。

4

1 に答える 1

0

Quartz の代わりに、pollメッセージ プロセッサを使用して、必要な のインスタンスを生成ListTestできます。

このクラスの FQDN がserver.TestService.ListTest(教えてくれなかった) であると仮定すると、次のように動作するはずです。

<flow name="TestAuditorClient_CheckerFlow1">
  <poll frequency="10000">
    <set-payload value="#[lt=new server.TestService.ListTest(); lt.aField='aValue'; lt]" />
  </poll>
...

POJO を作成する式から直接 POJO に値を設定する方法に注目してください。

于 2013-02-21T18:49:11.187 に答える