2012-03-10 24 views
0

私はspring、cxf、jax wsの実装を使って実装されたWebサービスを持っています。私のサービスは10の操作を公開し、いくつかの操作は200以上のフィールドを返します。今私はキャメルを使って自分のWebサービスをプロキシしたいと思っています。必要な操作と必須フィールドだけで、異なるクライアントに異なるWSDLを提供したいのです。私たちのクライアントの1人は、そのWebサービスの操作から公開された200フィールドの一部のフィールドだけで、10回の操作の特定の操作を望んでいます。どのように私はラクダを通してこれを達成することができますか?camelを使用してWebサービスをプロキシする方法は?

答えて

1

は、CXFで賛否両論があるかもしれません、あなたはキャメルのインスタンスを配置する方法に応じて

+0

ありがとうございます。私はapache camelによって提供されたcamel proxyの例を試してみました。私はラクダ文脈を定義したバンドルとしてラクダをインストールしました。しかし、私はプロセスを使用して交換オブジェクトからの応答を取得しようとすると失敗します。 Camelコンテキストiでは、同じコンテキストファイルで作成されたcxf:endpointとして定義され、既存のサービスに対して "to"が定義​​されています。プロセスインターフェースを実装しているプロセスBeanを参照している別の「to」の後に応答を返すことができず、デバッグして交換オブジェクトを参照しようとすると、応答のトレースを見ることができませんでした。 – Mr9

1

http://camel.apache.org/cxf-proxy-example.htmlを参照してください。

キャメルをスプリング対応のWebアプリケーションにバンドルする場合は、キャメルのSpring-WSもチェックしてください。 CXFより軽いですが、少し限られています。あなたのニーズに合っていますが、それは可能です。 http://camel.apache.org/spring-web-services.html

Spring-WSは実際には特定のWSDLにバインドするのではなく、特定の操作にバインドします。このよう :.bean(prepareProxy) .TO(「ばね-WS:HTTP

( ":rootqname?{http://example.com/}からgetfoo endpointMapping =#endpointMappingスプリング-WS")から://foo.com/bar ").bean(prepareAnswer);

必要な解答の複雑さに依存して、JavaやXSLTなどのスクリプト言語で行うことができます。それは味の問題です。

+0

ありがとうございます。私はapache camelによって提供されたcamel proxyの例を試してみました。私はラクダ文脈を定義したバンドルとしてラクダをインストールしています。しかし、私はプロセスを使用して交換オブジェクトからの応答を取得しようとすると失敗します。 – Mr9

関連する問題