現在、JIRAの問題を引き起こすURLを呼び出すためにHTTPメソッドを使用しています。
Apache Camelを使用したいのですが、どうすれば使用できますか?
Camelを介して次のリンクを呼び出す必要があります。
http://localhost:8080/rest/api/2/project/" + key + /components
私はCamelを初めて使用するので、いくつかの解決策と例も提案してください。
ありがとう
CXFRSコンポーネント ;を簡単に使用できます。 HTTPコンポーネント を使用してそれを行う必要がある場合は、何らかの理由でそれも簡単に使用できます。
<setHeader headerName="CamelHttpUri">
<simple>http://localhost:8080/rest/api/2/project/${header.myKey}/components</simple>
</setHeader>
<inOut uri="http://doesnt.matter.we/override/it/anyways" />
そしてもちろん、ルートのこの部分に到達する前に、myKey
ヘッダーでメッセージを充実させる必要があります。
Camelのエンドポイントへの動的な使用についてFAQ http://camel.Apache.org/how-do-i-use-dynamic-uri-in-to。 html
基本的に、このためのEIPパターンは受信者リストです。
したがって、あなたの場合は、1つのEIPとして簡略化することもできます
<recipientList>
<simple>http://localhost:8080/rest/api/2/project/${header.myKey}/components</simple>
</recipientList>
Camelのhttpコンポーネントは完全に同期していることに注意してください。 HTTPを介して要求/応答を実行し、応答メッセージの待機中に呼び出し元がブロックされないようにする場合は、次のようなCamelの他のHTTPコンポーネントのいくつかを使用できます。
Apacheキャメル桟橋を使用しています
CamelContext context = new DefaultCamelContext();
public void configure(){
context.addRoutes(new RouteBuilder(){
from("jetty:localhost:9000/offers")
.to("direct:getOffers")
.end();
}
});
したがって、ここでユーザーがヒットすると http:// localhost:9000/ohpers エンドポイントdirect:getOffersが呼び出されます
これで、getOffersエンドポイントを定義します
context.addRoutes(new RouteBuilder(){
public void configure(){
from("direct:getOffers")
.to("jetty:http://localhost:9008/api/v2.0/offers?
bridgeEndpoint=true")
.end();
}
});
ここでは、別のサービスが9008で実行されており、残りのリソースは http:// localhost:9008/api/v2.0/features であり、これが私が消費しようとしているリソースです。
したがって、ラクダのインスタンスが起動すると、両方のルートが登録され、上記のように処理されます。
注これを機能させるには、?bridgeEndpoint = trueのオプションを追加することが重要です。
CXFRS Component
を使用してラクダからRESTサービスを利用できます。Apacheラクダには、これに関する十分な情報があります。