14

Here is the simple spring boot project (version 1.5.2) to demonstrate the problem:

https://github.com/lanwen/camel-jms-activemq-test

It has Apache Camel version 2.18.3

On branch master all works fine because of activemq-camel=5.14.4 and camel-jms=2.16.3 (gets transitively from it)

Spring boot application starts normally with log:

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)

But when you start with camel-jms=2.18.3 (as the main version of camel, on branch not_working)

Things go wrong with this log:

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.

But if we change activemq-camel to 5.13.4 with camel-jms=2.18.3 it works fine again...

Why ActiveMQ 5.14.x doesn't work with camel-jms 2.18.x?

lanwen
  • 2,251
  • 1
  • 17
  • 30
  • I have a project with camel-version=2.18.0 and activeMQ-version=5.14.1 and it working fine. Can add some more traces? – Anton Krosnev Apr 24 '17 at 07:52
  • Did you try example project? https://github.com/lanwen/camel-jms-activemq-test. Also please check that your camel-jms version is not 2.16.x – lanwen Apr 24 '17 at 10:45

1 Answers1

2

If you look at the dependency list for the latest Camel ActiveMQ 1.15.5 (https://mvnrepository.com/artifact/org.apache.activemq/activemq-camel/5.14.5), you'll see that it already has camel-jms as a dependency, but the version is 1.16.3. So there's no need for you to separately add a camel-jms 1.18.x dependency in your POM, because it will overwrite the 1.16.x version that ActiveMQ already uses, which is the compatible one.

So essentially, the issue is that you're trying to use a newer, incompatible version of camel-jms. When you separately add the 1.18.x camel-jms dependency, the ActiveMQ componenet will use this version, which is not compatible with its 1.16.x version, and hence, the error.

If you need to use ActiveMQ, then you'll probably have to see if camel-jms 1.16.x will work for you.

Khaled
  • 644
  • 1
  • 8
  • 14
  • Sure, I know it has this version of the dependency. But the problem is that it don't work by default of you simply uses camel bom, or/and spring-boot bom. And the question is why it don't work exactly in this combination of versions and still works with another – lanwen May 09 '17 at 20:10