topicreceive.java

来自「jboss的jms一个小程序」· Java 代码 · 共 47 行

JAVA
47
字号
package com.hotct.jms;

import javax.jms.*;
import javax.naming.*;

import java.util.*;

public class TopicReceive {
	public static void main(String[] args) throws Exception{
		
		//创建用于JNDI查询的Context
		Context ctx = getInitialContext();
		
		TopicConnectionFactory topicConnectionFactory = 
			(TopicConnectionFactory)ctx.lookup("TopicConnectionFactory");
		Topic topic = (Topic)ctx.lookup("topic/testTopic");
		TopicConnection topicConnection = 
			topicConnectionFactory.createTopicConnection();
		TopicSession topicSession = topicConnection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
		TopicSubscriber topicSubscriber = topicSession.createSubscriber(topic);
		topicConnection.start();
		while(true){
			Message m = topicSubscriber.receive();
			if(m instanceof TextMessage){
				TextMessage message = (TextMessage)m;
				System.out.println("Reading message:" + message.getText());
			}
			else{
				break;
			}
		}
		if(topicConnection != null){
			topicSubscriber.close();
			topicSession.close();
			topicConnection.close();
		}
	}
	
	private static Context getInitialContext() throws NamingException{
		Hashtable environment = new Hashtable();
		environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
		environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
		environment.put(Context.PROVIDER_URL, "jnp://localhost:1099");
		return new InitialContext(environment);
	}
}

⌨️ 快捷键说明

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