首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Camel RabbitMQ Java DSL设置

问Camel RabbitMQ Java DSL设置
EN

Stack Overflow用户
提问于 2014-11-12 22:30:51
回答 1查看 833关注 0票数 0

我正在尝试让Camel RabbitMQ集成工作,只需打印队列消息到控制台即可。

使用RabbitMQ web接口,当我启动camel实例时,我可以看到连接已经建立。

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

然后,我使用RabbitMQ web接口向交换发布消息。

这是我正在使用的骆驼代码,但是我没有看到任何东西出现在我的控制台上,我也没有看到骆驼侧的任何消息接收确认。骆驼也没有表现出任何“消费者”的联系。

代码语言:javascript
复制
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");
    }

}

我做了什么明显的错事?或者还有什么我可以试着把它连接起来的?我也尝试过添加一个路由密钥,但没有运气。

谢谢

UPDATE设置此模式我使用了以下模式:http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html,它是独立的启动程序.

我所做的唯一的事情就是main.addRouteBuilder(新的IntegrationRouteFromRabbitMQBuilder());它应该设置上下文并启动一切,就像我所理解的那样。

代码语言:javascript
复制
    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

添加错误日志输出

代码语言:javascript
复制
    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]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 19:17:29

我能够通过不使用RabbitMQ接口发布消息来修复这个问题。

我使用来自Send.java教程的RabbitMQ应用程序发布了一条消息,这样我就可以确保所有的队列和交换都是正确的,而且它是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26897933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档