我有以下骆驼路线:
RequestToOrderTransform requestToOrderTransform =
new RequestToOrderTransform();
from("ghttp:///processOrder")
.transform(requestToOrderTransform)
.bean(OrderProcessor.class)
.to("direct:endOfRoute");
它使用 Camel-GAE 接收HttpServletRequest
来自 GAE servlet ( processOrder
) 的请求,然后将请求转换为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 使用它作为路由单元(到OrderProcessor
bean)?
提前致谢!