ActiveMQ Java Sample Consumer

    Shown below is example code that when deployed in the appropriate container, will allow an end-user to talk to the Axeda Platform Integration Queue.

     

    A customer should supply their unique values for the following properties:

    • queueName
    • user
    • password
    • url

     

    import java.util.Properties;
    import javax.jms.*;
    import javax.naming.*;
    
    public class SampleConsumer {
    
    
        private String queueName = "com.axeda.integration.ACME.queue";
        private String user = "system";
        private String password = "manager";
    //private String url = "ssl://hostname:61616";
      private String url = "tcp://hostname:61616";
    
        private boolean transacted;
        private boolean isRunning = false;
    
        public static void main(String[] args) throws NamingException, JMSException
        {
            SampleConsumer consumer = new SampleConsumer();
            consumer.run();
        }
    
        public SampleConsumer()
        {
            /** For SSL connections only, add the following: **/
    //        System.setProperty("javax.net.ssl.keyStore", "path/to/client.ks");
    //        System.setProperty("javax.net.ssl.keyStorePassword", "password");
    //        System.setProperty("javax.net.ssl.trustStore", "path/to/client.ts");
        }
    
        public void run() throws NamingException, JMSException
        {    
            isRunning = true;
        
            //JNDI properties
            Properties props = new Properties();
            props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
            props.setProperty(Context.PROVIDER_URL, url);
        
            //specify queue propertyname as queue.jndiname
            props.setProperty("queue.slQueue", queueName);
        
            javax.naming.Context ctx = new InitialContext(props);
            ConnectionFactory connectionFactory = (ConnectionFactory)ctx.lookup("ConnectionFactory");
            Connection connection = connectionFactory.createConnection(user, password);
            connection.start();
        
            Session session = connection.createSession(transacted, Session.AUTO_ACKNOWLEDGE);
        
            Destination destination = (Destination)ctx.lookup("slQueue");
            //Using Message selector ObjectClass = ‘AlarmImpl’
            MessageConsumer consumer = session.createConsumer(destination, "ObjectClass= 'LinkedList'");
        
            while (isRunning)
            {
                System.out.println("Waiting for message...");
                Message message = consumer.receive(1000);
                if (message != null && message instanceof TextMessage) {
                    TextMessage txtMsg = (TextMessage)message;
                    System.out.println("Received: " + txtMsg.getText());
                }
            }
            System.out.println("Closing connection");
            consumer.close();
            session.close();
            connection.close();
        }
    }