使用来自jms队列的消息
如何使用以下代码中放置在“jmsQueueConsumer:queue:consumer.queue”上的消息:使用来自jms队列的消息,jms,activemq,apache-camel,Jms,Activemq,Apache Camel,如何使用以下代码中放置在“jmsQueueConsumer:queue:consumer.queue”上的消息: CamelContext context1 = new DefaultCamelContext(); ConnectionFactory connectionFactory1 = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL); ConnectionFactory
CamelContext context1 = new DefaultCamelContext();
ConnectionFactory connectionFactory1 = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL);
ConnectionFactory connectionFactory2 = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL);
context1.addComponent("jmsQueueProducer", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory1));
context1.addComponent("jmsQueueConsumer", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory2));
context1.addRoutes(new RouteBuilder() {
public void configure() {
from("jmsQueueProducer:queue:producer.queue").to("jmsQueueConsumer:queue:consumer.queue");
}
});
ProducerTemplate template = context1.createProducerTemplate();
context1.start();
for (int i = 0; i < 10; i++) {
template.sendBody("jmsQueueProducer:queue:producer.queue", "Test Message: " + i);
}
camelcontext1=newdefaultcamelcontext();
ConnectionFactory connectionFactory1=新的ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT\u BROKER\u URL);
ConnectionFactory connectionFactory2=新的ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT\u BROKER\u URL);
addComponent(“jmsQueueProducer”,JmsComponent.jmsComponentAutoAcknowledge(connectionFactory1));
addComponent(“jmsQueueConsumer”,JmsComponent.jmsComponentAutoAcknowledge(connectionFactory2));
context1.addRoutes(新RouteBuilder(){
public void configure(){
从(“jmsQueueProducer:queue:producer.queue”)。到(“jmsQueueConsumer:queue:consumer.queue”);
}
});
ProducerTemplate=context1.createProducerTemplate();
context1.start();
对于(int i=0;i<10;i++){
template.sendBody(“jmsQueueProducer:queue:producer.queue”,“测试消息:+i”);
}
您可以配置另一个路由来处理它。例如:
from("jmsQueueConsumer:queue:consumer.queue")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
// your processing code here
}
})
.to(any other endpoint)
此外,您还可以将处理器本身提取为一个单独的类。要配置另一个rout,我需要另一个camelContext?不,所有内容都应该在同一个camelContext中。您只需在context1.start()之前添加此行。addRoutes(新RouteBuilder(){public void configure(){from(“jmsQueueConsumer:queue:consumer.queue”)。到(“任何其他端点”);});