rest("/getOptChoice").
get("/v1")
.consumes("application/json")
.to("direct:hello")
.produces("application/json");
from("direct:hello")
.split(header("emails"))
.to("seda:consumeGuestChoice")
.aggregate(constant(true),new OptAggregator())
.completionSize(2)
.marshal(jaxb)
.convertBodyTo(String.class);
转换身体后,如果我打印交换体,我会看到有效载荷。但是来自其他服务的HTTP响应始终为空。
之前有人遇到过这个问题吗?如果是这样,是否有解决方法?
答案 0 :(得分:1)
您可能需要在路线中启用流缓存:http://camel.apache.org/stream-caching.html
它允许为这些流支持的组件多次读取正文。
from("direct:hello")
.streamCaching()
.split(header("emails"))
.to("seda:consumeGuestChoice")
.aggregate(constant(true),new OptAggregator())
.completionSize(2)
.marshal(jaxb)
.convertBodyTo(String.class);
答案 1 :(得分:0)
如果你写:
from("direct:hello")
.split(header("emails"), new OptAggregator())
.to("seda:consumeGuestChoice")
.end()
.marshal(jaxb)
.convertBodyTo(String.class);
它可能有用。是吗?