⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bbsubscriber.java

📁 21天学通J2EE的例子4
💻 JAVA
字号:
import javax.naming.*;
import javax.jms.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class BBSubscriber extends JFrame implements MessageListener {

    private Connection connection;
    private Session session;
    private MessageConsumer consumer;
    private JTextArea textArea = new JTextArea(4,32);

    public static void main(String[] args) {
        BBSubscriber subscriber = null;
        try {
            subscriber = new BBSubscriber("jms/TopicConnectionFactory","jms/bulletinBoard");
        } 
        catch(Exception ex) {
            System.err.println("Exception in BulletinBoardSubscriber: " + ex);
            try {subscriber.close();} catch(Exception e){}
        }
        show (subscriber);
    }
    
    private static void show(final BBSubscriber subscriber) {
        subscriber.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent ev) {
                try {
                    subscriber.close();
                } catch(Exception ex) {
                    System.err.println("Exception in BulletinBoardSubscriber: " + ex);
                }
                subscriber.dispose();
                System.exit(0);
            }
        });
        subscriber.setSize(500,400);
        subscriber.setVisible(true);
    }

    public BBSubscriber(String JNDIconnectionFactory, String JNDItopic) throws JMSException, NamingException {
        super (JNDIconnectionFactory+":"+JNDItopic);
        getContentPane().add(new JScrollPane(textArea));
        Context context = new InitialContext();
        ConnectionFactory connectionFactory = (ConnectionFactory)context.lookup(JNDIconnectionFactory);
        connection = connectionFactory.createConnection();
        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination bulletinBoard = (Destination)context.lookup(JNDItopic);
        consumer = session.createConsumer(bulletinBoard);
        consumer.setMessageListener(this);
        connection.start();
    }

    public void onMessage(Message message) {
        System.out.println("Message "+message);
        try {
            if (message instanceof TextMessage) {
                String bulletin = ((TextMessage) message).getText();
                String text = textArea.getText();
                textArea.setText(text+"\n"+bulletin);
            }
        } catch(JMSException ex) {
             System.err.println("Exception in BulletinBoardSubscriber:OnMessage: " + ex);
        }
    }

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

⌨️ 快捷键说明

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