【问题标题】:Pass the request of Mule ESB service to conditional routers将 Mule ESB 服务的请求传递给条件路由器
【发布时间】:2012-01-19 18:28:42
【问题描述】:

我正在使用 Mule ESB 公开 CXF 服务,我需要将请求按原样传递给条件路由器。我看到的大多数示例都将响应传递给条件路由器。

如何在不更改 wsdl 的情况下向前传递请求?

【问题讨论】:

  • 很难理解您在寻找什么:您有什么可以分享的配置吗?这会帮助你。

标签: esb mule


【解决方案1】:

当 OP 给出更高的精度时,我会修改这个答案

在实现您的网络服务的组件之后放置一个choice routing message processor。

【讨论】:

  • 感谢您的回答。为了完整起见,我已经记录了我最终在回答中所做的事情(如果有更好的方法,请告诉我)。
  • 酷。您应该能够使用标准的对象到字符串转换器来代替您的自定义 RequestToString。否则,那做得很好:)
【解决方案2】:

我使用了 Mule ESB 3 提供的 web-service-proxy 模式

<pattern:web-service-proxy name="theProxy" 
         outboundAddress="vm://theProxyFlow" 
        wsdlFile="classpath:wsdl/MyWsWSDL.wsdl" inboundAddress="${inbound.url}" transformer-refs="RequestToString">
</pattern:web-service-proxy>

VM 端点实际上使用 xpath 表达式执行基于条件的路由。但是,我必须编写一个“RequestToString”自定义转换器,以便可以在传入的 SOAP 负载上应用 xpath。

我在变压器中使用了以下变换-

      if (src instanceof InputStream)
        {
            InputStream input = (InputStream) src;
            try
            {
                reqAsString = IOUtils.toString(input);
            }
            finally
            {
                IOUtils.closeQuietly(input);
            }
        }

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多