任何人都可以帮助我。我试图用骆驼发送消息。也许我有这个概念错了 我想向activemq发送一条简单的消息。我有一个messageService谁是sendmethode。问题是我发送pojo作为消息,我希望它自动转换为json字符串。这就是我尝试使用骆驼的原因。
我已经定义了一个指向我的发送方法的路由并在路由中添加了一个编组器。
问题是骆驼似乎每秒都会不断发送一条jms消息。 我想要的是当我调用sendMethode时,camel将我的消息输出转换为json。
这是我的溃败:
<from uri="bean:messageService?method=sendMessage" />
<marshal>
<json library="Gson"/>
</marshal>
<inOnly uri="activemq:com.pack.checkSynchronicityUrl" />
因此,当我调用服务messageService时,我希望camel将输出转换为json并将其放在队列中。
非常感谢你的帮助。
答案 0 :(得分:0)
当你有一个从豆子开始的路线
<from uri="bean:xxx"/>
使用bean组件,然后Camel将在无限循环中不断调用bean方法。
所以你需要做一些其他事情,例如你的bean中的java代码,你可以使用生成器模板api,pojo生成或使用代理等向Camel路由发送消息。请参阅下面的链接< / p>
答案 1 :(得分:0)
@Claus已经解释了你的路线问题。
您可以通过不同的方式实现所需的行为,您可以在这些链接中看到。这是一个适合您目的的样本。
将路线定义为:
from("direct:start").
marshal(...).
to("activemq:com.mele...);
或类似的春天dsl。以下代码可以是messageService.sendMessage()方法的一部分:
ProducerTemplate template = camelcontext.createProducerTemplate();
template.sendBody("direct:start", myPojo);