【发布时间】:2016-08-30 07:49:27
【问题描述】:
我很困惑从骆驼中to() 调用的子路由返回一个“body”。从我对直接路由的发现来看,它们鼓励路由重用,并用于逻辑拆分过于复杂的路由。但我似乎无法做一个最简单的“拆分”:
from("jms:createRequestQueue")
.to("direct:createRequest")
// here the processing of the message fails, see below
.bean(processor)
.to("...");
from("direct:createRequest")
.onException(Exception.class).bean(requestErrorHandler).stop()
.unmarshal().json(JsonLibrary.Jackson, MyModelRequest.class);
处理器实例的类如下所示:
public class RequestProcessor {
@Handler
public void update(@Body MyModelRequest request) {
// do stuff
}
}
问题是解组请求的路由(第二个路由)的结果不会传播回调用路由。抛出异常,表示它无法将 String(进入队列的 JSON)转换为 MyModelRequest 类。因此,似乎第一个路由中的 JSON 正文没有被解组路由的结果替换。我希望这确实是一个不错的路线重用。
我偶然发现了 InOut 消息,但文档非常不清楚,我的实验也以同样的方式失败了。
我需要做什么才能真正将部分路由提取到另一条路由以供重用?
【问题讨论】:
标签: apache-camel