我正在尝试将骆驼路线中的交换或身体记录为:
<log message="body:${body}"/>
这打印空白即。 &#34;身体:&#34;。但是,通过将参数传递为:
,可以在同一路径中调用某些处理器<bean id="userBean" method="findSomeUser(${body.getUserId})"/>
如果想看到交换内容,如何从骆驼路线记录交换/身体?
答案 0 :(得分:0)
你使用的表达方式是正确的,但那时你的身体是空的。尝试从此路线中删除setBody部分,您将获得相同的结果。
<route >
<from uri="timer://foo?fixedRate=true&period=5000"/>
<setBody>
<constant>MESSAGE</constant>
</setBody>
<log message="body:${body}"/>
</route>
答案 1 :(得分:0)
日志消息中的表达式$ {body}是正确的,你的身体可能是空的,因此它被打印出来。尝试使用setBody参数将正文设置为某个值并尝试打印正文。
答案 2 :(得分:0)
如果您使用的是Java DSL
,这就是打印邮件正文的方式;
from("file://xml/inbox")
.log("${body}");
如果您还想编辑或使用它,可以在Camel Processor
方法中使用process()
实现,如下所示,这样您就可以通过交换对象;
from("file://xml/inbox")
.log("${body}")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
String myBody = exchange.getIn().getBody();
System.out.println("This is my body: " + myBody);
}
})
.log(LoggingLevel.INFO, "Processed");