2011-12-29 3 views
2

Mule ESBを使用してCXFサービスを公開していますので、そのまま条件付きルータに渡す必要があります。私が見ている例のほとんどは条件付きルータへの応答を渡します。Mule ESBサービスのリクエストを条件付きルータに渡します

wsdlを変更せずにリクエストを転送するにはどうすればよいですか?

+0

をそれはあなたが探しているものを理解することは本当に難しいです:あなたが共有できるコンフィギュレーションのいずれかのビットを持っていますか?それはあなたを助けるのに役立ちます。 –

答えて

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エンドポイントによって提供されるWebサービスプロキシパターンが実際にXPath式を使用して、条件ベースのルーティングを行います使用。しかし、私は、受信SOAPペイロードにxpathを適用できるように、 "RequestToString"カスタムトランスフォーマーを作成しなければなりませんでした。

私は変圧器で、次の変換を使用 -

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

OPは、Webサービスを実装するコンポーネントの後に、より高精度に

場所choice routing message processorを与えているだろうとき、私はこの答えを改訂ます。

+0

あなたの答えをありがとう。完成の目的のために私は私の答えでやり遂げたことを文書化しました(それを行うよりよい方法があるかどうか私に教えてください)。 – Pushkar

+0

Cool。カスタムRequestToStringの代わりに標準のオブジェクトから文字列への変換を使用できるはずです。そうでなければ、それはかなりうまくいっています:) –

関連する問題