2017-11-22 1 views
0

私はルート以下肝炎:あなたは私がthrowExceptionOnFailure=falseCamel - リクエストパラメータ(throwExceptionOnFailure)をURLに追加する方法は?

を使用して、私は設定から​​私のURLを取る見ることができるように

from("quartz2:findAll//myGroup/myTimerName?cron=" + pushProperties.getQuartz()) 
       //.setBody().constant("{ \"id\": \"FBJDBFJHSDBFJSBDfi\" }") 
       .to("mongodb:mongoBean?database=" + mongoDataConfiguration.getDatabase() 
         + "&operation=findAll&collection=" + mongoDataConfiguration.getDataPointCollection()) 
       .process(exchange -> { 
        exchange.getIn().setBody(objectMapper.writeValueAsString(exchange.getIn().getBody())); 
       }).streamCaching() 
       .setHeader(Exchange.HTTP_METHOD, constant(pushProperties.getHttpMethod())) 
       .setHeader(Exchange.CONTENT_TYPE, constant(MediaType.APPLICATION_JSON_VALUE))      
       .to(pushProperties.getUrl() + "&throwExceptionOnFailure=false").streamCaching() 

を。しかし、我々は

pushProperties.getUrl() = localhost:8080/url?action=myaction

pushProperties.getUrl() = localhost:8080/url

の場合には動作しませんが、URLにリクエストパラメータを追加するにはラクダでuniversla方法がある場合は、それが動作することがわかりました?

何かのように:

​​3210

キャメルAPIの内部

答えて

0

localhost:8080/urlの場合には、付加した後、それは間違っている、この

localhost:8080/url&throwExceptionOnFailure=false
ようになるので
それがあるべきであること
localhost:8080/url?throwExceptionOnFailure=false,最初のケースで それはあなたがすでにrequestpatam(?action=myaction)を持っているので、次のいずれかがアンパサンド(&)

+0

私にとっては明らかです。私は** addParamater( "throwExceptionOnFailure"、false)のようなメソッドを持っていたい**私はそれがラクダのAPIのどこかにあると思う。確かに私は自分自身を書くことができますが、もし存在すればbuit-inを使いたいのですが、文書http://camel.apache.org/servletに従って、 – gstackoverflow

+0

をキーとしてヘッダに 'Exchange.HTTP_QUERY'を設定することができます – pvpkiran

+0

あなたのリンクのExchange.HTTP_QUERY *を見つけることができませんでした – gstackoverflow

0

を追加することができ、私はあなたがでhttpコンポーネントにエンドポイントを構成するために、独自のロジックを追加するために持っていると思う作品ランタイムこれは、ルート自体の間にCamelContextが処理するためです。パラメータthrowExceptionOnFailureは、httpコンポーネントのプロパティです。

httpコンポーネントが処理された後、これらのパラメータが評価されるため、.setHeader(Exchange.HTTP_QUERY, constant("throwExceptionOnFailure=false"))によってパラメータを追加すると効果がないと思われます。 URLの宛先に追加します。 、"How to use a dynamic URI in to()"を見てみてください:

.toD(pushProperties.getUrl() + "&throwExceptionOnFailure=false") 

あなたはpushProperties.getUrl()の結果に基づいて、やりたいロジックを記述するためにsimple expressionを使用することができます。

関連する問題