【问题标题】:Mule flow request-response issue骡流请求-响应问题
【发布时间】:2015-05-27 18:00:08
【问题描述】:

在此流程中,HTTP 入站配置为请求-响应。但是我仍然没有得到响应,因为它被路由到出站文件。如何获取 HTTP 端点的响应并将响应路由到 File outbound。

<flow name="helloFlow1" doc:name="helloFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9095" doc:name="HTTP"/>
    <custom-transformer class="com.uk.MyTransformer" doc:name="Java"/>
    <component class="com.uk.MyComponent" doc:name="Java"/>
    <echo-component doc:name="Echo"/>
    <file:outbound-endpoint path="C:\" outputPattern="file#[function:datestamp]" doc:name="File"/>

【问题讨论】:

  • 如果用于日志记录,最好使用 消息处理器而不是

标签: mule


【解决方案1】:

您没有收到响应,因为没有任何东西可以创建响应:file:outbound-endpoint 本质上是单向的,不会生成响应事件。

假设您希望写入文件的相同内容也返回给 HTTP 端点的调用者,一种选择是在并行异步流中“分离”写入文件,以便主流返回其当前值给来电者:

<flow name="helloFlow1" doc:name="helloFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9095" doc:name="HTTP"/>
    <custom-transformer class="com.uk.MyTransformer" doc:name="Java"/>
    <component class="com.uk.MyComponent" doc:name="Java"/>
    <echo-component doc:name="Echo"/>
    <async>
        <file:outbound-endpoint path="C:\" outputPattern="file#[function:datestamp]" doc:name="File"/>
    </async>
</flow>

【讨论】:

  • 根据此示例,我应该在 Browser/SoapUI 中接收入站服务的响应,并且需要将相同的响应路由到出站文件端点。但是为什么我没有收到入站 HTTP 端点的响应? mulesoft.org/documentation/display/MULE3EXAMPLES/…
  • 您的流程中的最后一个元素是一个仅限入站的出站端点,因此“责任在此停止”,即在调用此端点后没有更多消息可以路由回调用者。因此,您希望组件调用的结果既写入文件又返回给调用者?是这样吗?
  • 假设你的回答是肯定的,我已经修改了我的回答。
  • 非常感谢,这是我想要的解决方案。
猜你喜欢
  • 2011-04-27
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多