Java 实现Camel转换

Java 实现Camel转换,java,apache-camel,esb,middleware,Java,Apache Camel,Esb,Middleware,我有以下骆驼路线: RequestToOrderTransform requestToOrderTransform = new RequestToOrderTransform(); from("ghttp:///processOrder") .transform(requestToOrderTransform) .bean(OrderProcessor.class) .to("direct:endOfRoute"); 它使用Camel GAE从GAE serv

我有以下骆驼路线:

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;
    }
}
公共类RequestToOrderTransform实现表达式{
@凌驾
公共T评估(交换arg0,类arg1){
// ???
返回null;
}
}
在这里,不知何故,我必须将一个
HttpServletRequest
(我相信这是我从GAE servlet消费者那里得到的)转换成我自己的
顺序
POJO。但是我不确定首先如何获得
HttpServletRequest
。一旦我有了请求,我就可以提取出必要的参数,然后实例化我的新订单实例。但是我不知道如何处理
订单
,这样Camel就知道如何路由它,而不是原始的
HttpServletRequest

所以我问:

  • 如何获取我的
    HttpServletRequest
    (或从GAE servlet端点获取的任何对象)的实例
  • 如何设置新实例化的
    Order
    实例,以便Camel使用它作为路由单元(在
    OrderProcessor
    bean上)

  • 提前谢谢

    编写表达式似乎是一种糟糕的方式,而您真正要实现的只是一个消息转换器。但不管怎样,只要抓住尸体作为绳子,然后用它做任何事情

    arg0.getIn().getBody(String.class)
    
    在本例中,我不确定您从GAE中获得了什么数据,但如果它是结构化的(json、xml、平面文件、csv),您可能需要查看字符串到java对象的转换