topicexample1subscriber.java

来自「精通Jboss——Ejb和Web Services开发精解的随书源代码」· Java 代码 · 共 64 行

JAVA
64
字号
/**
 * Created on 2003-9-14
 */
package com.liuyang.jboss.message.jms.topic;
import java.util.Hashtable;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
 * @author
 * <a href="mailto:jdcyang@yahoo.com.cn">刘洋</a>
 */
public class TopicExample1Subscriber {

	public static void main(String[] args) throws Exception {
		TopicExample1Subscriber subscriber = new TopicExample1Subscriber();
		subscriber.connect();
		Message msg = subscriber.Subscribe();
		if(msg instanceof TextMessage){
			System.out.println(((TextMessage)msg).getText());
		}
		subscriber.disconnect();			
	}
	
	private TopicSession session;
	private Topic topic;
	private TopicConnection conn;
	private TopicSubscriber subscriber;
	private Context iniCtx;
	public void connect() throws NamingException, JMSException{
		Hashtable env = new Hashtable();
		env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
		env.put(Context.PROVIDER_URL,"localhost");
		Context iniCtx = new InitialContext(env);		
		Object tmp = iniCtx.lookup("ConnectionFactory");
		TopicConnectionFactory tcf = (TopicConnectionFactory) tmp;
		conn = tcf.createTopicConnection();
		topic = (Topic)iniCtx.lookup("topic/MemoryReporter");
		session = conn.createTopicSession(false,TopicSession.AUTO_ACKNOWLEDGE);
		conn.start();
		subscriber = session.createSubscriber(topic,null, false);
	}	

	public Message Subscribe() throws JMSException{
		return subscriber.receive(2000);
	}

	public void disconnect() throws JMSException{
		subscriber.close();
		conn.stop();
		session.close();
		conn.close();
	}
}

⌨️ 快捷键说明

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