import javax.jms.*;
public class MessagePublisher {
private QueueConnectionFactory connectionFactory;
private Queue queue;
public MessagePublisher(String connectionFactoryJndiName, String queueJndiName) {
try {
InitialContext context = new InitialContext();
connectionFactory = (QueueConnectionFactory) context.lookup(connectionFactoryJndiName);
queue = (Queue) context.lookup(queueJndiName);
} catch (NamingException e) {
e.printStackTrace();
}
}
public void publishMessage(String message) {
try {
QueueConnection connection = connectionFactory.createQueueConnection();
QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueSender sender = session.createSender(queue);
TextMessage textMessage = session.createTextMessage();
textMessage.setText(message);
sender.send(textMessage);
sender.close();
session.close();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
import javax.jms.*;
public class MessageReceiver implements MessageListener {
private QueueConnectionFactory connectionFactory;
private Queue queue;
public MessageReceiver(String connectionFactoryJndiName, String queueJndiName) {
try {
InitialContext context = new InitialContext();
connectionFactory = (QueueConnectionFactory) context.lookup(connectionFactoryJndiName);
queue = (Queue) context.lookup(queueJndiName);
} catch (NamingException e) {
e.printStackTrace();
}
}
public void startListening() {
try {
QueueConnection connection = connectionFactory.createQueueConnection();
QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueReceiver receiver = session.createReceiver(queue);
receiver.setMessageListener(this);
connection.start();
} catch (JMSException e) {
e.printStackTrace();
}
}
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage) {
try {
TextMessage textMessage = (TextMessage) message;
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
public class Main {
public static void main(String[] args) {
String connectionFactoryJndiName = "java:/ConnectionFactory";
String queueJndiName = "queue/MyQueue";
MessagePublisher publisher = new MessagePublisher(connectionFactoryJndiName, queueJndiName);
publisher.publishMessage("Hello, World!");
MessageReceiver receiver = new MessageReceiver(connectionFactoryJndiName, queueJndiName);
receiver.startListening();
}
}