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

📄 topicsubscribesynchronous.java

📁 基于JMS的消息,用包括界面代码,主要用初学都学习
💻 JAVA
字号:
package com.sjx.jms;

import java.util.*;
import javax.jms.*;
import javax.naming.*;
/**
 * @author sjx
 * openJms 非持久订阅同步接收演示
 */
public class TopicSubscribeSynchronous {
	private Context context = null;
	private TopicConnectionFactory factory = null;
    private TopicConnection topicConnection = null;
    private TopicSession topicSession = null;
    private Topic topic = null;
    private TopicSubscriber topicSubscriber = null;
    window w = null;
    
    public  TopicSubscribeSynchronous(window w){
    	this.w = w;
        try {
        	System.out.println("定购消息接收启动:");
        	//取得JNDI上下文和连接
            context = GetJini.getContext();
            //取得Topic的连接工厂和连接
             factory =GetJini.getTopicConnectionFactory(context);               
            topicConnection = factory.createTopicConnection();
            topicConnection.start();
            //创建Topic的会话,用于接收信息
            topicSession = topicConnection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
            topic = (Topic) context.lookup("topic1");    
            topicSubscriber =topicSession.createSubscriber(topic); 
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
    
    public void Receive(){
    	try {
			//收满10条订阅消息则退出
			for (int i=0; i<10; i++) {
			    //同步消息接收,使用receive方法,堵塞等待,直到接收消息
			    TextMessage message = (TextMessage) topicSubscriber.receive();
			    if(message.getText() != null){
			    	System.out.println("接收订阅消息["+i+"]: " + message.getText());
			    	w.topoicTextArea.append("接收订阅消息["+i+"]: " + message.getText());
			    }
			   Thread.sleep(1000);
			}
			System.out.println("订阅接收结束.");
			w.topoicTextArea.append("订阅接收结束.");
		} catch (JMSException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
    }
    
    public void close(){
    	GetJini.closeTopicSubscriber(topicSubscriber);
    	GetJini.closeTopicSession(topicSession);
    	GetJini.closeTopicConnection(topicConnection);
    	GetJini.closeContext(context);
    }
    
   /* public static void main(String args[]){
    	new TopicSubscribeSynchronous().Receive();
    }*/
}

⌨️ 快捷键说明

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