2011-12-29 76 views
2

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

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

+0

这真的很难理解你在找什么:你有,你可以共享配置的任何一点吗?这会帮助你。 – 2011-12-29 03:06:02

回答

1

我所用骡子ESB 3

<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”自定义转换器,以便我可以将xpath应用于传入的SOAP有效内容。

我用在变压器下面的转型 -

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

当实现Web服务组件后,OP会给予更高的精度

放置一个choice routing message processor我会修改这个答案。

+0

感谢您的回答。为了完整性目的,我记录了我在答案中做了什么(如果有更好的方法,请告诉我)。 – Pushkar 2012-01-19 10:30:17

+0

很酷。您应该能够使用标准的对象到字符串转换器来代替您的自定义RequestToString。否则,这是相当不错的:) – 2012-01-19 16:42:09

相关问题