【发布时间】:2013-01-24 12:01:32
【问题描述】:
我有以下骆驼路线:
RequestToOrderTransform requestToOrderTransform =
new RequestToOrderTransform();
from("ghttp:///processOrder")
.transform(requestToOrderTransform)
.bean(OrderProcessor.class)
.to("direct:endOfRoute");
它使用 Camel-GAE 从 GAE servlet (processOrder) 接收 HttpServletRequest,然后将请求转换为 Order POJO,最后处理该订单 (OrderProcessor)。
我想写我自己的org.apache.camel.Expression (requestToOrderTransform),到目前为止我已经有了骨架/框架:
public class RequestToOrderTransform implements Expression {
@Override
public <T> T evaluate(Exchange arg0, Class<T> arg1) {
// ???
return null;
}
}
在这里,不知何故,我必须将HttpServletRequest(我相信是我从 GAE servlet 消费者那里得到的)转换为我自己的Order POJO。但我不确定如何首先获得HttpServletRequest。收到请求后,我可以提取必要的参数,然后实例化我的新订单实例。但后来我不确定如何处理Order,以便骆驼知道路由它而不是原来的HttpServletRequest。
所以我问:
- 如何获取我的
HttpServletRequest实例(或我从 GAE servlet 端点获取的任何对象)? - 如何设置我新实例化的
Order实例,以便 Camel 使用它作为路由单元(到OrderProcessorbean)?
提前致谢!
【问题讨论】:
标签: java apache-camel esb middleware