Page History
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
package com.sos.jms.consumer; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SOSConsumer { private static final Logger LOGGER = LoggerFactory.getLogger(SOSConsumer.class); private static final String DEFAULT_QUEUE_NAME = "test_queue"; private String uri; public SOSConsumer (String uri) { this.uri = uri; } public String read() { TextMessage message = null; String textMessage = null; Connection connection = null; Session session = null; try { ConnectionFactory factory = new ActiveMQConnectionFactory(uri); connection = factory.createConnection(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue(DEFAULT_QUEUE_NAME); connection.start(); MessageConsumer consumer = session.createConsumer(destination); while (true) { Message receivedMessage = consumer.receive(1); if (receivedMessage != null) { if (receivedMessage instanceof TextMessage) { message = (TextMessage) receivedMessage; textMessage = message.getText(); LOGGER.info("Reading message: " + textMessage); break; } else { break; } } } } catch (JMSException e) { LOGGER.error("JMSException occurred while trying to read from Destination: ", e); } finally { if(session != null) { try { session.close(); } catch (JMSException e) { LOGGER.error("JMSException occurred while trying to close the session: " , e); } } if (connection != null) { try { connection.close(); } catch (JMSException e) { LOGGER.error("JMSException occurred while trying to close the connection: " , e); } } } return textMessage; } } |
Java Class with a main(String[] args)
method (example JmsExecute.java
)
The Java class makes use of the SOSProducer to create a message and send it to the message queue. It uses the SOSConsumer class to read the message from the queue. Additionally it creates an HTTP connection to a JS7 JOC Cockpit instance to call the /orders/add
API with the JSON body from the message received.
...
Overview
Content Tools