Apache camel Camel RabbitMQ Java DSL设置
我正在尝试让Camel-RabbitMQ集成工作,并将队列消息打印到控制台 使用RabbitMQ web界面,我可以看到在启动camel实例时建立了连接 我创建了一个名为“test”的直接交换和一个名为“test”的队列,并将它们绑定在一起 然后,我使用RabbitMQ web界面将消息发布到exchange 这是我正在使用的camel代码,但我没有看到任何东西出现在我的控制台上,也没有看到camel端的任何消息接收确认。Camel也没有显示任何连接的“消费者”Apache camel Camel RabbitMQ Java DSL设置,apache-camel,rabbitmq,Apache Camel,Rabbitmq,我正在尝试让Camel-RabbitMQ集成工作,并将队列消息打印到控制台 使用RabbitMQ web界面,我可以看到在启动camel实例时建立了连接 我创建了一个名为“test”的直接交换和一个名为“test”的队列,并将它们绑定在一起 然后,我使用RabbitMQ web界面将消息发布到exchange 这是我正在使用的camel代码,但我没有看到任何东西出现在我的控制台上,也没有看到camel端的任何消息接收确认。Camel也没有显示任何连接的“消费者” public class Int
public class IntegrationRouteFromRabbitMQBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
System.out.println("IntegrationRouteFromRabbitMQBuilder Instantiated");
from("rabbitmq://localhost/test?queue=test").to("stream:out");
}
}
我做错了什么?或者我还能试着把它接线好吗?我也尝试过添加路由密钥,但没有成功
谢谢
更新为了设置此模式,我使用了以下模式:它是独立的启动器
我唯一要做的就是main.addRouteBuilder(新的IntegrationRouteFromRabbitMQBuilder());据我所知,它应该建立上下文并激发一切
public void boot() throws Exception {
// create a Main instance
main = new Main();
// enable hangup support so you can press ctrl + c to terminate the JVM
main.enableHangupSupport();
// add routes
main.addRouteBuilder(new IntegrationRouteFromRabbitMQBuilder());
// run until you terminate the JVM
System.out.println("Starting Camel. Use ctrl + c to terminate the JVM.\n");
main.run();
}
更新2
添加错误日志输出
17:05:09.886 [main] INFO o.a.camel.impl.DefaultCamelContext - Route: route1 started and consuming from: Endpoint[rabbitmq://localhost/test?exchangeType=fanout&queue=test&routingKey=test123]
17:05:09.886 [Camel (camel-1) thread #1 - RabbitMQConsumer] TRACE o.a.c.c.rabbitmq.RabbitMQConsumer - Creating connection...
17:05:09.886 [main] TRACE o.a.camel.support.ServiceSupport - Starting service
17:05:09.886 [main] TRACE org.apache.camel.util.EventHelper - Notification of event is disabled: Started route: route1
17:05:09.886 [main] DEBUG o.a.c.m.DefaultManagementLifecycleStrategy - Load performance statistics disabled
17:05:09.886 [main] INFO o.a.camel.impl.DefaultCamelContext - Total 1 routes, of which 1 is started.
17:05:09.887 [main] INFO o.a.camel.impl.DefaultCamelContext - Apache Camel 2.14.0 (CamelContext: camel-1) started in 0.573 seconds
17:05:09.888 [main] TRACE org.apache.camel.util.EventHelper - Notification of event is disabled: Started CamelContext: camel-1
17:05:09.889 [Camel (camel-1) thread #1 - RabbitMQConsumer] DEBUG o.a.c.c.rabbitmq.RabbitMQConsumer - Created connection: amqp://guest@127.0.0.1:5672/
17:05:09.889 [Camel (camel-1) thread #1 - RabbitMQConsumer] TRACE o.a.c.c.rabbitmq.RabbitMQConsumer - Creating channel...
17:05:09.889 [Camel (camel-1) thread #1 - RabbitMQConsumer] DEBUG o.a.c.c.rabbitmq.RabbitMQConsumer - Created channel: AMQChannel(amqp://guest@127.0.0.1:5672/,1)
17:05:09.890 [pool-3-thread-3] TRACE o.a.c.u.c.CamelThreadFactory - Created thread[Camel (camel-1) thread #2 - RabbitMQConsumer] -> Thread[Camel (camel-1) thread #2 - RabbitMQConsumer,5,main]
我能够通过不使用RabbitMQ接口发布消息来解决这个问题
我使用RabbitMQ教程中的Send.java应用程序发布了一条消息,这样我就可以确保所有队列和交换都正确无误,并且有效 你也可以发布骆驼上下文设置吗?@stringy05也添加了设置。谢谢