私は、cxfとcamelを使って快適なウェブサービスを設定しています。マイ設定XMLは次のとおりです。Apache Camel:ルートスタートアップの制御
<jaxrs:server id="restContainer" address="/" staticSubresourceResolution="true"> <jaxrs:serviceBeans>
<ref bean="FooBar" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.apache.cxf.jaxrs.provider.JSONProvider">
<property name="dropRootElement" value="true" />
<property name="supportUnwrapped" value="true" />
</jaxrs:providers>
<camelcxf:rsServer id="rsServer" address="/" serviceClass="com.camel.example.FooBar" /> <camel:camelContext id="camelContext-1">
<camel:route>
<camel:from uri="cxfrs:bean:rsServer" />
<camel:to uri="http://localhost:8080/Google/rest/search" />
</camel:route>
</camel:camelContext>
今私はサービスとして公開し、このようなものですされFooBarのクラスがあります。私の関心は、私は自分のサーバーを打ったとき。.. camelContextがすぐに引き継ぐことです
@Service("Demo") @Path("/foo/bar") public class FooBar{
@POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public PoiDetailsResponse poiGetDetails(
PoiDetailsRequest json)
{
System.out.println(json.getUname());
System.out.println(json.getDeviceid());
//do some validation and some business logic
//return accordingly;
}
を私のクラスに存在するメソッドはまったく触れられていません。ルートの "to"部分から何らかの応答が来ても、実際にクライアントに返されます。ここで私はすべてのビジネスロジックに対して複数のプロセッサを追加します。しかし、私は本当に私のメソッドを最初に実行し、その後ルートを開始したい..どのように私はこれを行うことができますか?また、私は彼らが間違っている(PoiDetailsRequestの変数の間違ったデータ型を意味する)、任意の応答パラメータ(PoiDetailsResponseの一部ではない)を取得しても、何かを提案してください。
すぐに回答が得られない場合は、この質問へのリンクをCamelメーリングリストに投稿することを強くおすすめします。開発者は通常、非常に迅速に対応します。 http://camel.apache.org/mailing-lists.html – JustinKSU
YesとClaus Ibsen多分あなたを再び助けるために、彼は一人の軍隊です –