Apache camel Camel RabbitMQ Java DSL设置

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

我正在尝试让Camel-RabbitMQ集成工作,并将队列消息打印到控制台

使用RabbitMQ web界面,我可以看到在启动camel实例时建立了连接

我创建了一个名为“test”的直接交换和一个名为“test”的队列,并将它们绑定在一起

然后,我使用RabbitMQ web界面将消息发布到exchange

这是我正在使用的camel代码,但我没有看到任何东西出现在我的控制台上,也没有看到camel端的任何消息接收确认。Camel也没有显示任何连接的“消费者”

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也添加了设置。谢谢