Java 使用activemq客户端jar与activemq所有jar时出现问题

Java 使用activemq客户端jar与activemq所有jar时出现问题,java,jms,activemq,Java,Jms,Activemq,我需要使用activemq客户机而不是roll-up activemq all JAR文件,因为roll-up all包含我们使用的其他库的不同版本 我使用maven来管理依赖关系,客户端jar将: activemq客户端5.15.8 slf4j api 1.7.25 geronimo-jms_1.1_规范1.1.1 霍特布夫1.11 geronimo-j2ee-management_1.1_规范1.0.1 all jar只是activemqall 5.15.8 使用这段代码,使用activem

我需要使用activemq客户机而不是roll-up activemq all JAR文件,因为roll-up all包含我们使用的其他库的不同版本

我使用maven来管理依赖关系,客户端jar将:

activemq客户端5.15.8 slf4j api 1.7.25 geronimo-jms_1.1_规范1.1.1 霍特布夫1.11 geronimo-j2ee-management_1.1_规范1.0.1 all jar只是activemqall 5.15.8

使用这段代码,使用activemq all jar,我可以连接并开始接收消息。在createConnection调用中,我收到一条成功连接到的日志消息

使用activemq客户端jar,它在createSession调用时挂起,并在10次尝试后输出失败消息,将继续尝试消息。我没有成功连接到。。。信息

ConnectionFactory工厂=新ActiveMQConnectionFactoryuser,pass,url; 连接AMQconn=factory.createConnection; 会话amqsses=AMQconn.createSessionfalse,Session.AUTO_确认; Queue Queue=amqsses.createQueueName; MessageConsumer AMQconsumer=amqss.createConsumerqueue; 我假设我在某个地方缺少依赖项,但我没有得到未找到类def异常等

我也使用了activemq版本5.15.9,但我们的服务器是5.15.8,所以请坚持使用它


为什么客户端jar与滚动jar的比较:我需要在同一个过程中连接到hornetQ和AMQ,打破各个JAR是我试图修复汇总JAR中相互冲突的内容版本的尝试

问题忽略了URI,但注释似乎表明用户试图通过以下形式的URI进行连接:auto://localhost:61616. 这将是一个问题,因为自动传输在客户端没有意义,因为它意味着在代理端自动检测连接客户端正在使用的协议,并自动切换到该协议。自动传输允许代理在客户端连接的单个开放端口上支持多个协议

ActiveMQ JMS客户机必须始终使用Openwire协议,而Openwire协议正是它构建的目的,因此,客户机的URI将采用tcp://、ssl://或failover://等形式


如果包含ActiveMQ broker jar,则会出现一些特殊的便利类,这些类只会映射URI,其中包含在客户端(如nio)中没有意义的方案,nio+ssl或auto,但它们不包括在仅客户端的jar中,因为它们确实不属于jar,因为它们不打算在客户端使用。

尝试捕获日志并发布关于连接尝试的说明,否则猜测发生了什么非常困难,蒂姆·比什我觉得自己很傻,因为我没有想到这一点。非常感谢。activemq客户端不喜欢连接字符串中的auto,但喜欢tcp。activemq都可以处理自动。除了5.13引入的“自动”之外,我在文档中找不到任何其他关于该功能的信息。这是一个amq错误,还是我的配置错误?解决方案是什么?谢谢你的解释。服务器团队说,嘿,用这个字符串连接。这似乎来自于单元测试的camel/fuse配置,但如果他们使用的是activemq all,那么它只适用于他们。这是故障转移:tcp://server1:61616,tcp://server2:61616,... 加上很多其他的参数