ルーティングの概念は理にかなっていますが、実際は少し混乱しています。私は自分のWebサービスにCXFの方法を持っているapache camelリクエストレスポンスと次のトランスフォーマへのルーティング方法
public Response someMethod(Request r) {
}
私は何を得ることはありませんが、私はので、私は本当に行うことになっていた経路にさらにいくつかのノードへの要求が必要であるJavaコードやインタフェースを生成ラクダます(非同期的に)そのノードをいくつかの変圧器に接続して次のノードバリデーターにいくつかのストアとフォワードなどに接続し、最後にストアとフォワードの応答を返すことができます。元々。
上記の方法では、そのメソッドでクライアントに応答を返すように強制されています。
私がwebservicesメソッドにコードを入れることになっている場合、呼び出すはずのラクダコンテキストがありますか?
また、SOAPメソッド呼び出しの "RAW"パラメータが必要なので、SOAPヘッダーを処理したくないし、ストリングを受け入れるだけのREST APIも公開する必要があります。
EDIT:以下の回答のプロキシの例は私が見た中で一番近いものですが、短くカットしたい場合や、パイプラインの以前のノードで実際のWebサービスを呼び出していない場合もあります。私は、webserviceコードを持っていないので、望んでいないend webserviceコードを呼び出さなければならないようです。私たちは、Webサービス呼び出しから既存のpojosを通して実行しようとしています。検証ノードに障害が発生した場合、応答を返す必要があります。要求が他のノードに転送された場合、応答が返されます。応答が返ってきた場合、または要求が転送された場合は成功します。これには何もないようですね???また、これはかなり典型的なケースのように思えるので、私は驚いています。あるいは、これらのESBフレームワーク(これまでのラバ、ラクダ)で何かを得ていません。
おかげで、 ディーン
同じことを考えている。キャメルは何も簡単にセットアップすることは不可能です。ウェブサイトの例さえ動作しません。 –
Guice DIを使って試してみてください。コンポーネントを書き直して自分のロールを作り、すべてのコンポーネントが直接接続して、フレームワークが変更されていないので、簡単に変更することができます。あなたのためにできるだけ少し(と私は春とは違ってバインディングのものは、JavaではなくXMLで行われる方法が好きです)。 –
私は以前Guiceを使っていましたが、私は実際にSpringを好んでいます(Javaのみでバインドすることもできます)。しかし、それは私の問題ではない、私の問題はキャメルです。私は最終的に私の問題を解決しましたが、ドキュメンテーションが間違っている、不完全である、または時代遅れであるため非常に困難でした。そして非常に散らばった。 –