To send a point-to-point message, you must send a message to a JMS message queue. To send the message, you first have to create a JNDI context and retrieve the JMS connection factory for a message queue in the JMS environment. Next, you have to create a queue connection in order to establish a queue session. Once you have a session, you can find the actual queue to which you want to send a message, and build a sender object for transmission of your message. Finally, you simply construct your message and send it using the sender like in the sample below:

Message queues guarantee that messages are consumed by only one receiver and are never duplicated across multiple listeners.

public class MessageSender {
    private void send(String subject, String content) {
        try {
            // first configure and retreive initial context:
            InitialContext context = getInitialContext();
            // get the queue factory:
            QueueConnectionFactory factory = (QueueConnectionFactory)
            // create a queue connection and session:
            QueueConnection connection = factory.createQueueConnection();
            QueueSession session = connection.createQueueSession(
                    false, Session.AUTO_ACKNOWLEDGE);
            Queue queue = (Queuecontext.lookup("BookJMSQueue");
            QueueSender sender = session.createSender(queue);
            // finally, create and send a message:
            MapMessage message = session.createMapMessage();
            message.setString("Subject", subject);
            message.setString("Content", content);
        catch (Exception e) {

Parent Category: Java EE Tips