我尝试使用apache Camel合并来自Web服务的两个响应。在下面的代码中,我连接了两个响应。
public Exchange aggregate(Exchange exchange1, Exchange exchange2) {
if (exchange1 == null) {
return exchange2;
} else {
String body1 = exchange1.getIn().getBody(String.class);
String body2 = exchange2.getIn().getBody(String.class);
String merged = (body1 == null) ? body2 : body1 + "," + body2;
exchange1.getIn().setBody(merged);
return exchange1;
}
}
这里我的目的是从response1中选择一些属性并从response2中选择一些属性,然后使用我们从响应1和2中选择的属性来最终确定最终响应。最终响应将被发送回客户端。
先谢谢。
更新:我们可以通过使用现成的Camel模式实现这一目标吗?如果没有,任何想法或建议写我们自己的算法来处理这种情况。
答案 0 :(得分:0)
您可以通过以下任一方式从JSON主体获取属性:
direct:read-service1-info
和第二个路径的末尾)将Camel路由中的响应解组为Java对象,然后将它们用作聚合方法中的其他Java对象(Response1Type response1 = exchange1.getIn().getBody(Response1Type.class)
): Unmarshalling JSON