2012-04-18 21 views
1

私はCXFフレームワーク上に安らかなWebサービスビルドを用意しています。要件は、誰かがこのサーバーにぶつかるとき、私は、受信したパラメータに応じてGoogle、bingなどのようなコンテンツプロバイダからいくつかのデータを取得し、クライアントに同じものを返さなければならないということです。今サービスプロバイダーに電話し、その結果を得るには、Camel Frameworkを使用する必要があります。 私は、( "direct:start").to( "http://google.com).bean(ffoo | bar)からの簡単なルートを使用すると、私がサービスプロバイダに話を聞かせて、結果は問題ですが、問題は "直接:"の代わりにするべきで、これはクライアントからヒットしているサービスメソッドからこのルートが始まるようにすることです。POJOの生成については少し読んでいますが、仕事とそれが私の問題を解決するかどうか。Apache Camel:ルーティングのアドバイスが必要

また、私はこの文法では..から()。()へ...コンシューマーはプロデューサーかプロデューサーか?私のログにはルートが直接的に消費されていると言われています。開始... バネ構成のタイプの回答が好ましいでしょう

Tha nks

+0

私は、ラクダなしでCXF *を使用していて、誰かがサーバーにヒットしたときに、CXFコードがプロデューサを作成して送信することを理解するために'direct:start'へのメッセージ? –

+0

はいcxfはラクダとは独立しています。誰かが私のサーバーにアクセスすると、私はラクダを使ってGoogleに接続する必要があります。私のサーバーをfrom構文で直接利用できるいくつかのラクダコンポーネントがあります。私は代わりに(直接:開始)それはいくつか(サーバー:foobar)かもしれないことを意味します。 – Sikorski

答えて

0

最初は私のwebservice用のcxfrsコンポーネントを実装しましたが(Roy Trueloveの答えに触発されています)、それは他のcomplicationsにつながります。今ダイレクトを使用して:私の設定は次のようになります。..ルートを起動するためのコンポーネントを起動します。

<camel:route> 
<camel:from uri="direct:start" /> 
<camel:process ref="customInProcessor" /> 
<camel:to uri="http://localhost:8080/DummyGoogleProject/search" /> 
<camel:to uri="bean:googleResponseHandler" /> 
</camel:route> 
</camel:camelContext> 

customInProcessor CamelHttpUri、パスを変更するようないくつかの処理を行い、クエリなど(これなしでいくつかのproblems in route executionがあった)私は注入しています (POJO producing

1

はい、キャメルはRESTサービスを公開し、これらの要求を下流にルーティングできます。

使用できるオプションはいくつかあります。最初のオプションのような音は、少なくとも痛みを伴うようになります。

EDIT - コメント

上記成分のすべてに返信しますサーバー側でRESTベースのWebサービスとしてサーバーを公開するために使用できます。 Camel-speakでは、外部からのメッセージを消費するため、コンポーネントをコンシューマとして使用していることを意味します。

プロデューサーズと消費者の詳細については、the author himselfより詳しく説明することはできません。

+0

私はCXFRSコンポーネントを見ていきます。ありがとう – Sikorski

+0

またこのことを明確にしてください:この構文で.. from()。()... toはコンスマーであり、fromはプロデューサですか?私のログではルートが直接から消費されていると言われています: – Sikorski

+0

CXFRSコンポーネント、これを使用して私の残りのWebサービスを公開すべきであることを意味しますか?またはクライアント側のみを使用する必要がありますか?私は少し混乱しています。 – Sikorski

関連する問題