1

CXF フレームワーク上に安らかな Web サービスを構築しています。要件は、誰かがこのサーバーにアクセスしたときに、受け取ったパラメーターに従って、Google、bing などのコンテンツ プロバイダーからデータを取得し、クライアントに同じデータを返す必要があることです。サービスプロバイダーを呼び出してその結果を取得することは、Camel Framework を使用して行われるようになりました。単純なルート from("direct:start").to("http://google.com).bean(ffoo|bar) を使用すると、サービス プロバイダーと通信して、結果に対して必要なことを実行できることがわかりました。 .しかし、問題は、このルートがクライアントによってヒットされているサービスメソッドから開始されるように、「direct:start」の代わりに何を配置する必要があるかということです.POJOの作成について少し読みましたが、どのように機能するのか理解できませんでした.それが私の問題を解決するかどうか。

また、私はクエリを持っています..この構文では.. from().to() ... toはconsmerでfromはプロデューサーですか、それともその逆ですか?? 私のログでは、ルートが direct:start から消費されていると表示されているため、Spring 構成タイプの回答を好むでしょう

ありがとう

4

2 に答える 2

1

はい、CamelはRESTサービスを公開し、それらのリクエストをダウンストリームにルーティングできます。

使用できるオプションがいくつかあります。最初のオプションのように聞こえますが、最も苦痛が少ないでしょう:

編集-コメントに返信するには

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

プロデューサーとコンシューマーの詳細については、作者自身よりもうまく説明することはできません。

于 2012-04-19T12:09:07.723 に答える
0

最初に、Webサービスにcxfrsコンポーネントを実装しました(Roy Trueloveの回答に触発されました)が、他の複雑さにつながります。だから今、ルートを開始するために direct:start コンポーネントを使用しています..私の設定は次のようになります:

<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 、 Path 、 Query などの変更などの処理を行います (これがないと、ルートの実行に問題がありました) POJO から ProducerTemplate を介して「direct:start」エンドポイントに交換を注入しています ( POJO 生成)

于 2012-04-24T09:50:41.503 に答える