在将mule流发送回请求 - 响应端点之前编辑响应

时间:2012-12-11 19:19:55

标签: mule

我对mule esb有点新意,我无法解决我遇到的一个麻烦。这是发生的事情: 我有一个流量在mule 3.2.0,它接收对象与ws的请求。我用cxf发送它给ws:jaxws-client和。在此流程的开头,我有vm:带有请求 - 响应模式的入站端点。我想要的是将转换应用到从“vmIn端点”作为响应返回的对象,然后从流的“vm.logService端点”发送回调用方。我实际上得到了响应,但它是有效负载。 “vm.logService”是我通过MuleClient.send(url,message,properties)从Java代码发送MuleMessage的端点。我读过这应该用“响应”块完成,但似乎是这不会发生。

这是我的配置

<vm:endpoint  name="vmOut"  path="vmOut" exchange-pattern="request-response"/>

<vm:endpoint  name="vmIn"  path="vmIn" exchange-pattern="request-response"/>

<pattern:web-service-proxy 
name="name" 
inboundEndpoint-ref="vmIn" 
transformer-refs="logging" 
responseTransformer-refs="logging"
outboundEndpoint-ref="vmOut" />



<flow name="logService">

<vm:inbound-endpoint path="vm.logService"/>

<vm:outbound-endpoint ref="vmIn">

<cxf:jaxws-client   serviceClass="my.WSClass" operation="operation" 
enableMuleSoapHeaders="false"/>

<object-to-string-transformer/>

</vm:outbound-endpoint>

<response>
<custom transformer name="myTransformer" class="someclass" />
</response>
<flow name="genericTransformer">

    <vm:inbound-endpoint path="vmOut"/>

    <custom-transformer class="mypkg.GenericServiceTransformer">

    </custom-transformer>

</flow> 

 <flow name="import">
<vm:inbound-endpoint path="vm.import" exchange-pattern="request-response"/>

    <http:outbound-endpoint address="${Service}" responseTimeout="${ws.timeout}" exchange-pattern="request-response" />

    <object-to-string-transformer/>
</flow>

好吧,在使用jaxws-client发送之后,我有更多的流来处理这个请求消息,但我不认为这就是为什么它不起作用的原因。在此先感谢您的任何帮助

1 个答案:

答案 0 :(得分:1)

“vm.logService”VM端点看起来对我没有请求 - 响应:由于您没有指定交换模式,因此默认情况下它实际上是单向的。这可以解释为什么你没有得到任何回报。

此外,我们没有看到“vmIn”的定义,因此我们无法确定它是否是正确的请求 - 响应,这可能是未到达响应块的另一个原因。

实际上:如果你的响应块是流程中的最后一个元素,你就不需要它了:如果在请求阶段应用了“myTransformer”就行了,因为之后什么都没有。

  

在使用jaxws-client发送之后,我还有更多的流来处理此请求消息

我真的不明白你的意思。