0

私は次のルートを持っています:

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()

ご覧のとおり、私は使用していますthrowExceptionOnFailure=false

そして、構成からURLを取得します。しかし、次の場合に機能することがわかりました

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

次の場合は機能しません

pushProperties.getUrl()=localhost:8080/url

キャメルにリクエストパラメータをURLに追加する普遍的な方法はありますか?

何かのようなもの:

private String buildUrl() {
    String url = pushProperties.getUrl();
    return url + (url.contains("?") ? "&" : "?") + "throwExceptionOnFailure=false";
}

Camel APIの内部

4

2 に答える 2