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端點 –