首先,我对Camel很新,所以如果我在这里尝试做什么(或如何)是愚蠢的,请告诉我。
CODE:
from("direct:one")
.to("mock:two")
.process(new Processor(){
@Override
public void process(Exchange exchange)throws Exception{
MyCustomObject obj = exchange.getIn().getBody(MyCustomObject.class);
exchange.getOut().setBody(obj.getOneOfTheFields());
}
})
.to("mock:three");
问题:
此处理器将对象转换为其中一个字段。我知道我可以用简单的表达式替换它,但这需要我将'oneOfTheFields'放在一个字符串中,我不想这样做。
是否只有使用java代码执行此操作的较短方法?
答案 0 :(得分:2)
使用setBody
和Camel simple
:
from("direct:one")
.to("mock:two")
.setBody(simple("${body.fieldName}"))
.to("mock:three");
您指定字段的名称,Camel将使用标准访问器机制来适当地设置正文。
答案 1 :(得分:1)
你能不能简单地这样做:
from("direct:one")
.to("mock:two")
.setBody(body().getOneOfTheFields())
.to("mock:three");
让我知道这是否有效。