Wednesday, December 14, 2016

Simple ActiveMQ Message Producer Example


While Working with JMS, starting with a simple example in local is always best. ActiveMQ provides best way to test your code locally by giving vm://localhost:61616 connector.

Below example will help you to start with JMS Producer.


import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;

public class SenderTest {

public static void main(String[] args) {
Connection conn = null;
try {
// 1 - Connection Factory
ConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost:61616");
// 2 - Create a Connection
conn = factory.createConnection();
conn.start();
// 3 -  Create a Session
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 3A - Create a Message
Message message = session.createTextMessage("Hello World in JMS!!");
// 3B - Create a Destination / Queue / Topic

Destination destination = session.createQueue("TEST.QUEUE");
// You can create specific Instances
Queue queue = session.createQueue("OTHER.QUEUE"); 
Topic topic = session.createTopic("TEST.TOPIC");

// Step 4
MessageProducer producer = session.createProducer(destination);
producer.send(message);
// close the connection
session.close();
conn.close();


} catch (JMSException e) {
e.printStackTrace();
}
}

}