Apache camel 为什么ActiveMQ 5.14.x可以';t开始嵌入驼峰jms组件2.18.3

Apache camel 为什么ActiveMQ 5.14.x可以';t开始嵌入驼峰jms组件2.18.3,apache-camel,jms,activemq,Apache Camel,Jms,Activemq,下面是一个简单的spring引导项目(版本1.5.2)来演示该问题: 它有ApacheCamel版本2.18.3 在分支master上,由于activemq camel=5.14.4和camel jms=2.16.3(从中可传递地获取),所有操作都正常 Spring引导应用程序正常启动,日志为: 2017-04-22 00:53:19.647 INFO 97217 --- [ main] o.a.camel.spring.SpringCamelContext :

下面是一个简单的spring引导项目(版本
1.5.2
)来演示该问题:

它有ApacheCamel版本2.18.3

在分支
master
上,由于
activemq camel=5.14.4
camel jms=2.16.3
(从中可传递地获取),所有操作都正常

Spring引导应用程序正常启动,日志为:

2017-04-22 00:53:19.647  INFO 97217 --- [           main] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.18.3 (CamelContext: camel-1) is starting
2017-04-22 00:53:19.662  INFO 97173 --- [           main] o.apache.activemq.broker.BrokerService   : Apache ActiveMQ 5.14.4 (localhost, ID:lanwen-osx3.local-62145-1492811599544-0:1) is starting
2017-04-22 00:53:19.665  INFO 97173 --- [           main] o.apache.activemq.broker.BrokerService   : Apache ActiveMQ 5.14.4 (localhost, ID:lanwen-osx3.local-62145-1492811599544-0:1) started
2017-04-22 00:53:19.665  INFO 97173 --- [           main] o.apache.activemq.broker.BrokerService   : For help or more information please see: http://activemq.apache.org
2017-04-22 00:53:19.682  INFO 97173 --- [           main] o.a.activemq.broker.TransportConnector   : Connector vm://localhost started
2017-04-22 00:53:19.702  INFO 97173 --- [           main] o.a.camel.spring.SpringCamelContext      : Route: route1 started and consuming from: activemq://queue:to-write?asyncConsumer=true
2017-04-22 00:53:19.703  INFO 97173 --- [           main] o.a.camel.spring.SpringCamelContext      : Total 1 routes, of which 1 are started.
2017-04-22 00:53:19.704  INFO 97173 --- [           main] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.18.3 (CamelContext: camel-1) started in 0.466 seconds
2017-04-22 00:53:19.709  INFO 97173 --- [           main] ru.yandex.test.writer.MyTestApplication  : Started MyTestApplication in 2.437 seconds (JVM running for 2.911)
但是当您从camel jms=2.18.3开始时(作为camel的主版本,在分支上)

此日志出现问题:

2017-04-22 00:56:38.070  INFO 97195 --- [           main] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.18.3 (CamelContext: camel-1) is starting
...
2017-04-22 00:56:43.590  WARN 97195 --- [ActiveMQ Task-1] o.a.a.t.failover.FailoverTransport       : Failed to connect to [tcp://localhost:61616] after: 10 attempt(s) continuing to retry.
但是如果我们使用
cameljms=2.18.3
activemqcamel
更改为
5.13.4
,它又可以正常工作了


为什么ActiveMQ5.14.x不能与camel jms2.18.x一起工作?

如果查看最新camel ActiveMQ
1.15.5
()的依赖项列表,您会发现它已经将
camel jms
作为依赖项,但版本是
1.16.3
。因此,您无需在POM中单独添加
camel jms
1.18.x
依赖项,因为它将覆盖ActiveMQ已经使用的
1.16.x
版本,该版本是兼容的

因此,本质上,问题是您正在尝试使用更新的、不兼容的
camel jms
。单独添加
1.18.x
camel jms
依赖项时,ActiveMQ组件将使用此版本,该版本与其
1.16.x
版本不兼容,因此会出现错误


如果您需要使用ActiveMQ,那么您可能需要查看
camel jms
1.16.x
是否适合您

我有一个camel版本=2.18.0和activeMQ版本=5.14.1的项目,它运行良好。是否可以添加更多跟踪?是否尝试了示例项目。另外,请检查您的camel jms版本是否为2.16.xSure,我知道它具有此版本的依赖关系。但问题是,默认情况下,它不起作用,因为您只使用驼峰bom或/和弹簧引导bom。问题是,为什么它不能在这两个版本的组合中工作,而仍然可以在另一个版本中工作