我试图通过两个队列之间的方法传递我的消息。这是我的路线:
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="jms:queue:testQSource"/>
<to uri="direct:adder"/>
</route>
<route>
<from uri="direct:adder"/>
<log message="Routing message from testQSource to testQDestination queue with data ${body}"/>
<to uri="jms:queue:testQDestination"/>
</route>
</camelContext>
以下是包含加法器的类:
package com.example.integration;
public class Modifier {
public String adder(String words) {
System.out.println("adder entered");
return words + 'a';
}
}
输入的&#34;加法器打印声明不会被打印,而且该消息没有额外的&#34; a&#34;最后。任何想法为什么没有使用这个功能?
提前感谢您的帮助!
答案 0 :(得分:2)
该错误消息表示您尚未定义从direct:adder
使用的路由...因为直接是同步的,所以它需要在调用时使用路由/消费者。 ..
请参阅http://camel.apache.org/bean.html,它应该看起来像这样......
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="jms:queue:testQSource"/>
<to uri="direct:adder"/>
</route>
<route>
<from uri="direct:adder"/>
<to uri="myBean"/>
<log message="Routing message from testQSource to testQDestination queue with data ${body}"/>
<to uri="jms:queue:testQDestination"/>
</route>
</camelContext>
<bean id="myBean" class="com.example.integration.Modifier"/>