ptplistener.java

来自「21天学通J2EE的例子4」· Java 代码 · 共 72 行

JAVA
72
字号
import javax.naming.*;
import javax.jms.*;

public class PTPListener implements MessageListener {

    private Connection connection;
    private Session session;
    private MessageConsumer consumer;

    public static void main(String[] args) {
        System.out.println ("Listener running");
        try {
            PTPListener receiver = new PTPListener();
          }
        catch(Exception ex) {
             System.err.println("Exception in PTPListener: " + ex);
        }
    }

    public PTPListener() throws JMSException, NamingException {
        try {
            Context context = new InitialContext();
            ConnectionFactory connectionFactory = (ConnectionFactory)context.lookup("jms/QueueConnectionFactory");
            Destination destination = (Destination)context.lookup("jms/firstQueue");
            connection = connectionFactory.createConnection();
            session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
            consumer = session.createConsumer(destination);
            consumer.setMessageListener(this);
            connection.start();
        }
        catch (JMSException ex) {
            try {connection.close();} catch(Exception e){}
            throw ex;
        }
    }

    public void onMessage(Message message) {
        try {
            String text;
            if (message instanceof TextMessage) {
                text = ((TextMessage) message).getText();
            }
            else {
                text = message.toString();
            }
            System.out.println("Received: " + text);
            message.acknowledge();
            if (text.equals("Quit")) {
                System.out.println("PTPReceiver closing down");
                new Thread(new Runnable () {
                    public void run() {
                        try {
                            PTPListener.this.close();
                        }
                        catch(JMSException ex) {
                            System.err.println("Exception in Closer: " + ex);
                        }
                    }
                }).start();
            }
        }
        catch(JMSException ex) {
            System.err.println("Exception in OnMessage: " + ex);
        }
    }

    public void close() throws JMSException {
        connection.close();
    }
    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?