djo*_*leb 2 apache exchange-server properties apache-camel
我需要一些有关更新 Apache Camel 中的交换属性的帮助。
用例:我有一个从 API 端点获取一些 Id 的路由,之后我需要从另一个端点获取每个 id 的信息。
我需要将响应保存在某处,以便稍后创建一些 JSON 数组。
有人可以给我一些具有类似用例的工作路线,或者只是为我指出正确的方向吗?
示例路线
from("direct:getIds") .setProperty("ValueToUpdate").constant("")
.to("endpontWhichReturns ids")
.split().jsonpath("$.Data") .log("${property.xrefCode}")
.toD("getInfoById) .log("${body}")
.choice() .when(header("CamelHttpResponseCode").isEqualTo("200"))
.setProperty("body").body()
.setProperty("updateBody",method("PrepareUpdate","prepare"))
.aggregate(property("ValueToUpdate"), new Aggreagation())
.to("direct:someEndpoint") .end() .to("mock:nestdo11");
Run Code Online (Sandbox Code Playgroud)
希望这个简单的路线可以帮助您:
from("jms://somequeue")
.split(simple("${body}"), (oldExchange, newExchange) -> {
Response response = newExchange.getIn().getBody(Response.class);
LinkedList<Response> responseCollection = oldExchange.getProperty("responseCollection", LinkedList.class);
if (responseCollection == null) {
newExchange.setProperty("responseCollection", new LinkedList<Response>(Collections.singletonList(response)));
} else {
responseCollection.add(response);
newExchange.setProperty("responseCollection", responseCollection);
}
return newExchange;
})
.process(exchange -> {
String id = exchange.getIn().getBody(String.class);
Response response = receiveResponse(id);
exchange.getIn().setBody(response);
})
.end()
.process(exchange -> {
LinkedList<Response> collection = exchange.getProperty("responseCollection", LinkedList.class);
//create your json
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4440 次 |
| 最近记录: |