0

我已经在论坛上搜索了这个问题的答案。我发现了一个几乎相同的问题,尽管答案让我仍然想知道。

在这里找到了几乎相同的帖子:

Mule - 安排流程以使用 Web 服务

这张海报说明了我遇到的问题。

我也是 Mule 的新手,并且正在尝试做同样的事情。我没有意识到我需要一个有效载荷,因为我认为操作规范本质上是有效载荷。

请注意,我有一个包含 cxf:jaxws-client 的流,并且该客户端指定了服务的 URL 和操作“listTest”。

为了实际执行服务请求,我还需要指定哪些其他有效负载?

我试图向事件生成器添加一个虚拟有效负载(如参考帖子中所建议的那样),但这并没有什么不同。

当我执行 mule 应用程序并监视“测试审计员 Web 服务”(使用 wireshark)时,我看到 wsdl 发出了四个请求,我看到 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>

我不仅是 mule 的新手,而且是堆栈溢出的新手。因此,如果我有更好的方法来提出相关问题,请提出建议并原谅。

提前致谢。

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 回答