我们的应用程序中有以下骆驼路线:
from(webServiceUri).routeId("webServiceRoute")
.unmarshal(jaxb)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final DataRequest body = in.getBody(DataRequest.class);
final DataRequest.Items items = body.getItems();
itemValidator.validate(items.getItem());
getContext().createProducerTemplate().sendBody(importUri, body);
DataResponse response = new DataResponse();
response.setReturnCode(ReturnCode.SUCCESS);
in.setBody(response);
}
})
.marshal(jaxb);
我们希望“webServiceRoute”在处理器验证数据并将消息转发到“importUri”后立即返回响应用户。但现在看来,在“importUri”交换完成之前,响应不会返回给调用者。所以我的问题是将接收到的请求异步转发到另一个队列的“正确”方法是什么?“importUri”交换将不会有任何回复(即它应该是 InOnly)。