2011-12-29 119 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

相關問題