JBoss Community

Re: Consumer JMS in JBoss 7.1.1-Final

created by Marcio B. in JBoss Messaging - View the full discussion

import javax.jms.*;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import java.util.Properties;

 

public class JMSConsumer implements MessageListener {

 

 

    private InitialContext initialContext;

 

 

    private Connection connection;

 

 

    private MessageConsumer consumer;

 

 

    public void receiver() {

        initialContext = getInitialContext();

        try {

            ConnectionFactory connectionFactory =

                    (ConnectionFactory) initialContext.lookup("jms/RemoteConnectionFactory");

 

 

            connection = connectionFactory.createConnection("user", "pass");

 

 

            connection.start();

 

 

            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

 

 

            Destination destination = (Destination) initialContext.lookup("jms/queue/test");

 

 

            consumer = session.createConsumer(destination);

 

 

            consumer.setMessageListener(this);

        } catch (JMSException e) {

            e.printStackTrace();

        } catch (NamingException e) {

            e.printStackTrace();

        }

    }

 

 

    @Override

    public void onMessage(Message message) {

        try {

            if (message instanceof TextMessage) {

                TextMessage textMessage = (TextMessage) message;

                System.out.println(textMessage.getText());

            }

 

 

            if (message instanceof ObjectMessage) {

                ObjectMessage objectMessage = (ObjectMessage) message;

                System.out.println(objectMessage.getObject());

            }

        } catch (JMSException e) {

            e.printStackTrace();

        }

 

 

        try {

            Thread.sleep(1500);

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

    }

 

 

    private InitialContext getInitialContext() {

        Properties properties = new Properties();

        properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");

        properties.put(Context.PROVIDER_URL, "remote://localhost:4447");

        properties.put(Context.SECURITY_PRINCIPAL, "user");

        properties.put(Context.SECURITY_CREDENTIALS, "pass");

        InitialContext context = null;

        try {

            context = new InitialContext(properties);

        } catch (NamingException e) {

            e.printStackTrace();

        }

        return context;

    }

 

 

    public static void main(String[] args) {

        new JMSConsumer().receiver();

    }

}

Reply to this message by going to Community

Start a new discussion in JBoss Messaging at Community