Hi folks, i desperately need som guidance as to how to get my ActiveMQ upgrade to work with Tomcat and Spring5. (If Slack is better, happy to get an invitation!)
---BACKGROUND Been running 3 webapps with an in-memory activeMQ broker for intra-app communication for 10+ years. I have had the activemq-all jar in tomcat's /lib, because i wanted to reduce the overall classloader memory footprint. All other jars such as Spring has been in the respective war/lib directories. This has been Spring 4.3 and ActiveMQ 5.14. I have defined the broker through Spring to that the first webapp deployed starts the broker Running on Tomcat 9 This setup has worked fine for me. — UPGRADE PROBLEM I am looking to update to Spring 5 the easiest way I can, changing as little as possible, keeping config the same. Optimally i stay on 5.14 for now, but i can upgrade to 5.18 if i have to. What i'm getting is something that seems to be a clash with the jms1.1 / 2.0 support? From what i've read 5.18 comes with 2.0 support but i tried to use 5.18.4 and i get the same. Eerror message: Unsatisfied dependency expressed through constructor parameter 0: Could not convert argument value of type [org.apache.activemq.spring.ActiveMQConnectionFactory] to required type [javax.jms.ConnectionFactory]: Failed to convert value of type 'org.apache.activemq.spring.ActiveMQConnectionFactory' to required type 'javax.jms.ConnectionFactory'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'org.apache.activemq.spring.ActiveMQConnectionFactory' to required type 'javax.jms.ConnectionFactory': no matching editors or conversion strategy found I have tried doing maven dependencies and building, rather than using the “activemq-all”, and that does seem to work. But this would mean that every class would be loaded into memory three times, and I’d like to avoid that if at all possible. **If someone could help me getting my Spring 5 running with Tomcat(9) I'd be most grateful. — SETUP Java 11 Spring 5.3.33 ActiveMQ 5.14 (or 5.18.4, tried everything) I have the javax.jms-api 2.0.1 on the classpath because Spring 5 requires it. I have tried both having and not having jms1.1 on the classpath, no difference. Spring messaging setup: <amq:connectionFactory id="refConnectionFactory" brokerURL="vm://myBroker" clientID="webapp"/> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <constructor-arg ref="refConnectionFactory"/> <property name="sessionCacheSize" value="4"/> </bean> <!-- JmsTemplate Definition --> <bean id="jmsTemplate" class="com.mypackage.MyTemplate"> <constructor-arg ref="connectionFactory"/> </bean>