使用来自jms队列的消息

使用来自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

如何使用以下代码中放置在“jmsQueueConsumer:queue:consumer.queue”上的消息:

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”)。到(“任何其他端点”);});