We use Spring (3.2.4) with ActiveMQ (5.8.0) in Tomcat (7.0.41) and it is not clear what the best usage. We want to use JmsTemplate to produce and MessageListenerContainer to
But disadvantage of spring implementation - it does not supports XA transactions. But activemq implementation supports it (XAPooledConnectionFactory). So, i'd say if you using JMS with other resources and even with another jms broker and want do it transacted - use activemq implementation. And of course, PooledConnectionFactory will work with any JMS compliant MOM too