2012-05-02 6 views
0

ルーティングの概念は理にかなっていますが、実際は少し混乱しています。私は自分のWebサービスにCXFの方法を持っているapache camelリクエストレスポンスと次のトランスフォーマへのルーティング方法

public Response someMethod(Request r) { 
} 

私は何を得ることはありませんが、私はので、私は本当に行うことになっていた経路にさらにいくつかのノードへの要求が必要であるJavaコードやインタフェースを生成ラクダます(非同期的に)そのノードをいくつかの変圧器に接続して次のノードバリデーターにいくつかのストアとフォワードなどに接続し、最後にストアとフォワードの応答を返すことができます。元々。

上記の方法では、そのメソッドでクライアントに応答を返すように強制されています。

私がwebservicesメソッドにコードを入れることになっている場合、呼び出すはずのラクダコンテキストがありますか?

また、SOAPメソッド呼び出しの "RAW"パラメータが必要なので、SOAPヘッダーを処理したくないし、ストリングを受け入れるだけのREST APIも公開する必要があります。

EDIT:以下の回答のプロキシの例は私が見た中で一番近いものですが、短くカットしたい場合や、パイプラインの以前のノードで実際のWebサービスを呼び出していない場合もあります。私は、webserviceコードを持っていないので、望んでいないend webserviceコードを呼び出さなければならないようです。私たちは、Webサービス呼び出しから既存のpojosを通して実行しようとしています。検証ノードに障害が発生した場合、応答を返す必要があります。要求が他のノードに転送された場合、応答が返されます。応答が返ってきた場合、または要求が転送された場合は成功します。これには何もないようですね???また、これはかなり典型的なケースのように思えるので、私は驚いています。あるいは、これらのESBフレームワーク(これまでのラバ、ラクダ)で何かを得ていません。

おかげで、 ディーン

答えて

0

決して解決しなかった、私たちは自分自身を転がすことに比べてかなり痛みですので、ラクダを落としました。

+0

同じことを考えている。キャメルは何も簡単にセットアップすることは不可能です。ウェブサイトの例さえ動作しません。 –

+0

Guice DIを使って試してみてください。コンポーネントを書き直して自分のロールを作り、すべてのコンポーネントが直接接続して、フレームワークが変更されていないので、簡単に変更することができます。あなたのためにできるだけ少し(と私は春とは違ってバインディングのものは、JavaではなくXMLで行われる方法が好きです)。 –

+0

私は以前Guiceを使っていましたが、私は実際にSpringを好んでいます(Javaのみでバインドすることもできます)。しかし、それは私の問題ではない、私の問題はキャメルです。私は最終的に私の問題を解決しましたが、ドキュメンテーションが間違っている、不完全である、または時代遅れであるため非常に困難でした。そして非常に散らばった。 –

0

Look at this official Example, it'll show how to do this Or this Cxf proxy example if you want the RAW request

すでに春のMVCのWebアプリケーションである場合 - あなたはおそらく春のWSとJAXBと少し簡単にこれを行うことができます。しかし、それは味の問題です。 Example code here

+0

申し訳ありませんが、その例を通り、例を踏んだりしています。例の5月はエンドポイントではなく実際の作業を行う石鹸インターフェイスを公開し、ルーティングを通じて次のノードに作業を渡します。私と私のチームメイトのどちらかが大きなものを見逃しているか、これらの例だけがこのシナリオに当てはまらない(上記の質問にもっと多くの情報を追加する) –

関連する問題