camel generic producer(通过spring xml config路由)

时间:2014-07-02 07:39:20

标签: java xml spring apache-camel

我想从java发送一个通用消息,然后由camel路由。到目前为止,消息总是转到activemq主题(示例1),但将来我希望能够更改路由(即将消息发送到休息Web服务而不修改源代码)(通过spring xml配置)。所以我希望做〜像〜示例2.我该怎么做?

示例1 :(到目前为止它是如何完成的)

@EndpointInject(uri="activemq:topic:IMPORTANTEVENTS")
ProducerTemplate producer;
producer.sendBody("Hello world!");

示例2 :(它应该是什么样子 - 或多或少)

@EndpointINject(uri="myevents")
... (as above)

XML配置:

<route id="SysoutRoute">
     <from  uri="myevents"/>
     <to uri="activemq:topic:IMPORTANTEVENTSS"/> 
</route>

2 个答案:

答案 0 :(得分:3)

您可以使用属性占位符:http://camel.apache.org/using-propertyplaceholder.html - 然后不需要更改java源代码,但是uri在.properties文件中定义,然后您可以轻松更改

答案 1 :(得分:0)

好的让它运转起来。通过使用direct:component(http://camel.apache.org/direct.html

实际上非常简单
@EndpointInject(uri="direct:outMessage")
ProducerTemplate producer;

现在我可以发送消息:

producer.sendBody("Hello world!");

并通过Spring xml配置路由它们,例如像这样:

 <route id="outMessage">
    <from uri="direct:outMessage"/>
    <to uri="stream:out"/> 
    <to uri="activemq:topic:IMPORTANTEVENTS"/> 
    <to uri="restlet:http://localhost:8888/status/?restletMethod=post"/> 
 </route>