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();
}
}