- Apache ActiveMQ Tutorial
- Apache ActiveMQ - Home
- Apache ActiveMQ - Overview
- Apache ActiveMQ - Environment Setup
- Apache ActiveMQ - Features
- Apache ActiveMQ - Running Broker Server
- Apache ActiveMQ - Admin Console
- Apache ActiveMQ Queue Based Example
- Apache ActiveMQ - Producer Application
- Apache ActiveMQ - Consumer Application
- Apache ActiveMQ - Test Application
- Apache ActiveMQ Topic Based Example
- Apache ActiveMQ - Publisher Application
- Apache ActiveMQ - Subscriber Application
- Apache ActiveMQ - Test Application
- Apache ActiveMQ Useful Resources
- Apache ActiveMQ - Quick Guide
- Apache ActiveMQ - Useful Resources
- Apache ActiveMQ - Discussion
Apache ActiveMQ - Subscriber Application
Now let's create a subscriber application which will receive message from the ActiveMQ Topic.
Create Project
Using eclipse, select File → New → Maven Project. Tick the Create a simple project(skip archetype selection) and click Next.
Enter the details, as shown below −
groupId − com.tutorialspoint
artifactId − subscriber
version − 0.0.1-SNAPSHOT
name − ActiveMQ Subscriber
Click on Finish button and a new project will be created.
pom.xml
Now update the content of pom.xml to include dependencies for ActiveMQ.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tutorialspoint.activemq</groupId> <artifactId>subscriber</artifactId> <version>0.0.1-SNAPSHOT</version> <name>ActiveMQ Subscriber</name> <dependencies> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jms_1.1_spec</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.apache.qpid</groupId> <artifactId>qpid-jms-client</artifactId> <version>0.40.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.fusesource.mvnplugins</groupId> <artifactId>maven-uberize-plugin</artifactId> <version>1.14</version> <executions> <execution> <phase>package</phase> <goals><goal>uberize</goal></goals> </execution> </executions> </plugin> </plugins> </build> </project>
Now create a Subscriber class which will receive message from the ActiveMQ Queue.
package com.tutorialspoint.activemq; import java.io.Console; import javax.jms.Connection; import javax.jms.Destination; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.qpid.jms.JmsConnectionFactory; public class Subscriber { public static void main(String[] args) throws Exception { // Create a connection to ActiveMQ JMS broker using AMQP protocol JmsConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:5672"); Connection connection = factory.createConnection("admin", "password"); connection.start(); // Create a session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // Create a topic Destination destination = session.createTopic("MyFirstTopic"); // Create a subscriber specific to topic MessageConsumer subscriber = session.createConsumer(destination); Console c = System.console(); String response; do { // Receive the message Message msg = subscriber.receive(); response = ((TextMessage) msg).getText(); System.out.println("Received = "+response); } while (!response.equalsIgnoreCase("Quit")); // Close the connection connection.close(); } }
Subscriber class creates a connection, starts the session, creates a consumer and then receives message from topic if there is any. If topic contains quit as message then application terminates else it will keep polling queue for messages.
We'll run this application multiple times to create multiple subscribers in ActiveMQ - Test Application chapter.
To Continue Learning Please Login
Login with Google