Spring Jms ActiveMQ – How to create a SpringBoot ActiveMQ Response Management application by @SendTo annotation

In the past posts, we had learned how to consume/produce ActiveMq JMS messages. Today, JavaSampleApproach will show you way to create a SpringBoot ActiveMQ Response Management application by @SendTo annotation.

Related posts:
Spring ActiveMQ JMS Consumer and JMS Producer
Send Java object messages to ActiveMQ server (specially with Bi-Directional relationship Java objects)
Spring JMS ActiveMq Topic (Publisher-Subcribers pattern)


I. Technologies

– Java 8
– Maven 3.6.1
– Spring Tool Suite: Version 3.8.4.RELEASE
– Spring Boot: 1.5.4.RELEASE
– Apache ActiveMQ 5.14.0

II. ActiveMQ Response Management

With the Spring JMS improvements (from 4.1), we can used @SendTo annotation to define the default next destination with @JmsListener:

SpringBoot ActiveMQ Response Management application - sendto aannotation - architecture

For additional headers, you could return a Message object instead:

When having several @JmsListener methods, we can also place the @SendTo annotation at the class level to share a default reply destination.

III. Practice

In the tutorial, we create 2 SpringBoot projects {SpringActiveMqProducerConsumer, SpringActiveMqSendTo}:

SpringBoot ActiveMQ Response Management application - sendto aannotation - project structure

Step to do:
– Create SpringBoot projects
– Create model messages
– Configure ActiveMq ConnectionFactory
– Create Jms Producer/Listeners
– Run and check results

1. Create SpringBoot projects

Using SpringToolSuite, create 2 projects SpringBoot projects {SpringActiveMqProducerConsumer, SpringActiveMqSendTo}, then add dependencies:

2. Create model messages

Create 2 model classes {Company, Product}:

– Company:

– Product:

3. Configure ActiveMq ConnectionFactory

– Create ActiveMqConnectionFactoryConfig file:

4. Create Jms Producer/Listeners
4.1 For SpringActiveMqProducerConsumer project

– Create a Producer:

– Create a Consumer:

4.2 For SpringActiveMqSendTo project

– Create a JmsReplyConsumer:

5. Run and check results

– Start ActiveMQ server with commandline: C:\apache-activemq-5.14.5>.\bin\activemq start.
– Build and Run the SpringBoot applications {SpringActiveMqSendTo, SpringActiveMqProducerConsumer} by commandlines: {mvn install -Dmaven.test.skip=true, mvn spring-boot:run}

-> Logs of JmsReplyConsumer from SpringActiveMqSendTo:

-> Logs of JmsConsumer from SpringActiveMqProducerConsumer:

-> With ActiveMQ server, go to http://localhost:8161/admin/queues.jsp:

SpringBoot ActiveMQ Response Management application - sendto aannotation - activemq logs

IV. Sourcecode

SpringActiveMqProducerConsumer
SpringActiveMqSendTo

By JavaSampleApproach | July 24, 2017.


Related Posts


Got Something To Say:

Your email address will not be published. Required fields are marked *

*