This topic describes the steps required to create a MQTT JMS application that subscribes for data.
This sample application uses a JNDI repository to get the JMS administered objects and assumes that the administered object have already been created in the JNDI repository, as described in Registering JMS administered objects in JNDI.
import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage;
public void runJMSApplication() throws Exception {
InitialContext jndiContext = new InitialContext();
ConnectionFactory connFactory = (ConnectionFactory)jndiContext.lookup
("jms/my_connection_factory");
Destination topic = (Destination)jndiContext.lookup("jms/my_topic");
Connection conn = connFactory.createConnection();
conn.setClientID("MQTT_JMS_CLIENT");
Session session = conn.createSession(true,
session.AUTO_ACKNOWLEDGE);
MessageConsumer consumer = session.createConsumer(topic); MessageProducer producer = session.createProducer(topic);
conn.start();
TextMessage message = session.
createTextMessage("Hello World");
producer.send(message);
session.commit();
TextMessage receivedMessage =
(TextMessage)consumer.receive(5000);
session.commit();
System.out.println("Message:"+receivedMessage.getText());
conn.close(); }