私は次のルートを持っています:
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の内部