2017-06-02 16 views
0

Googleのデータベースから当社の複数のエンドユーザにデータを転送するために、Camelを使用しています。ラクラクには、OracleデータベースからPL/SQLを介して要求しているいくつかの休止エンドポイントが設定されています。Camel/JavaEE - 投稿後のURLパターンと投稿されたデータをRest endpointから次のルート/ webservicesに転送

残りのエンドポイントはsomeserver.net/{interfaceId}/{season}/postのようになります。 Oracleデータベースからは、java Webサービスによって処理される識別子を持つコンマ区切りのリストを送信しています。

投稿されたデータを転送した後に、URLのパラメータをどのように使用することができないか、役立つ情報が見つかりませんでした。その後

<post uri="/{interfaceId}/{season}/post" produces="text/plain"> 
    <to uri="direct:postWithSeason" /> 
</post> 

私はデータやパラメータ{interfaceId}と{シーズン}を受け取り、someserver.net/hub/xml/{interfaceId}/{season}/postのようなURLを持っている私たちのWebサービスに渡し、別のルートをしたい: は、これは私がエンドポイントの構成方法です。 Webサービスはエンドユーザに転送されるXMLファイルを作成しています。

ルートだから

<route id="fetchData"> 
    <from uri="direct:postWithSeason" /> 
     <setHeader headerName="CamelHttpMethod"> 
      <constant>POST</constant> 
     </setHeader> 
     <setHeader headerName="CamelHttpUri"> 
      <simple>http://serverWithWebservice.net/</simple> 
     </setHeader> 
     <setHeader headerName="CamelHttpPath"> 
      <simple>hub/xml/{interfaceId}/{season}/payloadIds</simple> 
     </setHeader> 
     <to uri="http4:serverWithWebservice.net" /> 
     <to uri="file:/someDirectory?fileName=someFileName.xml" /> 
</route> 

ようになりますどのように私は、Webサービスがのカンマ区切りのリストに沿って呼ばれているルートへのPL/SQLプロシージャによって呼び出されるURLからパラメータを取得することができますpayloadIds? XML DSLを使用する代わりに、Javaでルートを構築するのはまったく問題ありません。

私はJavaEE、Camel、HTTPリクエストを数ヶ月間しか使用していないため、すべての基本について熟知していないため、問題解決のためのリソースを見つけることができませんでした。

答えて

0

キャメルREST-DSL店キャメルメッセージヘッダーとしてそれらの、あなたは${header.interfaceId}などを経て、その後得ることができるので、その簡単な表現であなたが

<setHeader headerName="CamelHttpPath"> 
    <simple>hub/xml/${header.interfaceId}/${header.season}/payloadIds</simple> 
</setHeader> 
+0

感謝を構築し、これが機能しています! – Alex

関連する問題