【发布时间】:2019-06-17 14:04:15
【问题描述】:
我需要使用 activemq-client 而不是 roll-up activemq-all JAR 文件,因为 roll-up all 包含我们使用的其他库的不同版本。
我正在使用maven管理依赖,客户端jar拉进来:
- activemq 客户端 (5.15.8)
- slf4j-api 1.7.25
- geronimo-jms_1.1_spec (1.1.1)
- hawtbuf (1.11)
- geronimo-j2ee-management_1.1_spec (1.0.1)
all jar 只是 activemq-all (5.15.8)
使用此代码和 activemq-all jar,我可以连接并开始接收消息。在createConnection() 通话中,我收到一条日志消息“成功连接到...”
使用 activemq-client jar,它在createSession() 调用时挂起(并输出“10 次尝试后失败,将继续尝试”消息)。我确实没有收到“成功连接到...”消息。
ConnectionFactory factory = new ActiveMQConnectionFactory(user, pass, url);
Connection AMQconn = factory.createConnection();
Session AMQsess = AMQconn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = AMQsess.createQueue(queueName);
MessageConsumer AMQconsumer = AMQsess.createConsumer(queue);
我假设我在某处缺少依赖项,但我没有收到 no class def found 异常等。
(我也使用了activemq 5.15.9版本,但我们的服务器是5.15.8,所以坚持使用)。
更大的图景(为什么客户端 jar 与汇总 jar):我需要在同一个过程中连接到 hornetQ 和 AMQ,并且打破单个 jar 是我尝试修复冲突版本的东西易拉罐)
【问题讨论】:
-
尝试捕获日志并发布有关连接尝试的内容,否则很难猜测发生了什么
-
好建议,提姆比什,我觉得自己没有想到这一点很愚蠢。谢谢你。 activemq-client 不喜欢连接字符串中的“auto”,但喜欢“tcp”。 activemq-all 可以处理“自动”。我在文档中找不到任何关于此的内容(除了 5.13 引入的“自动”)。这是一个 amq 错误,还是我的错误配置?
-
解决方案是什么?