0
Spring配置:骆驼动态路由器修改消息不起作用
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="kafka:127.0.0.1:9092?topic=test1&zookeeperHost=127.0.0.1&zookeeperPort=2181&groupId=group1&serializerClass=kafka.serializer.StringEncoder"/>
<dynamicRouter>
<!-- use a method call on a bean as dynamic router -->
<method ref="compositorSlip" method="slip"/>
</dynamicRouter>
</route>
</camelContext>
<bean id="compositorSlip" class="com.maxent.routingcenter.DynamicRouterTest" />
滑方法:
public String slip(Exchange exchange, @Header(Exchange.SLIP_ENDPOINT) String previous) {
// just route one time, return null means to end.
if(previous != null){
return null;
}
// I've tried two ways to modify the message body, but they both didn't work.
exchange.getOut().setBody("message modified!!!!!", String.class);
exchange.getIn().setBody("message modified!!!!!", String.class);
if (i++ % 2 == 0) {
return "file://test";
}
return null;
}
我已经试过两种方式来修改邮件正文,但他们都没有工作。我如何修改邮件正文?使用处理器?
我想在动态路由器之前添加处理器。我怎样才能让处理器的输出成为动态路由器的输入? –
我已经在它们之间添加了一个vm组件。这是最佳做法吗? –
只需在传票中返回两个端点,第一个是处理器,第二个是您想要执行的操作。您可以使用逗号分隔这两个端点。然后,第一个端点可以是可以更改消息的bean端点 –