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

📄 asyncsubscriber.java

📁 Spring2.0宝典
💻 JAVA
字号:
/*******************************************************************
<br>Copyright (C), 2004-2006, yeeku.H.Lee
<br>Program Name:SyncConsumer.java
<br>作用:演示pub/sub消息同步消费者程序。
<br>Author:yeeku.H.lee kongyeeku@163.com
<br>Version:1.0
<br>This program is protected by copyright laws.
<br>Date: 2005-9-22
*******************************************************************/

package leejms;

import javax.jms.JMSException;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSubscriber;
import javax.jms.TopicSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.InitialContext;
import java.util.Properties;

public final class AsyncSubscriber implements MessageListener
{
    private TopicSubscriber subscriber;
	private TextMessage msg;
    public AsyncSubscriber()throws NamingException,JMSException
	{
		Context ctx=getInitialContext();
		TopicConnectionFactory tConFactory=(TopicConnectionFactory)ctx.lookup("weblogic.jms.ConnectionFactory"); 
		Topic messageTopic=(Topic)ctx.lookup("MessageTopic");
		TopicConnection tCon=tConFactory.createTopicConnection();
		//tCon.setClientID("1");
		TopicSession session=tCon.createTopicSession(false,/*不是事物性会话*/Session.AUTO_ACKNOWLEDGE);
		subscriber=session.createSubscriber(messageTopic);
		subscriber.setMessageListener(this);
		tCon.start();
    }
	public void onMessage(Message m)
	{
        try
		{
            TextMessage msg=(TextMessage) m;
            System.out.println("接收的消息体内容:" + msg.getText());
			System.out.println("接收的完整消息:" + msg);
        }
		catch (JMSException e)
		{
            e.printStackTrace();
        }
	}    

//----------------公用函数,用来获取命名服务的Context对象-------------------------
    protected Context getInitialContext()
	{
        String url = "t3://localhost:8181";
	    Properties properties = null;
		Context ctx=null;
		try
		{
			Properties p = new Properties();
			p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
			p.put(Context.PROVIDER_URL, url);
			ctx = new InitialContext(p);
		}
		catch(NamingException ne)
		{
			System.err.println("不能连到WebLogic server在" +url);
			ne.printStackTrace();
		}
		return ctx;
	}
//------------------------主函数,程序的入口-----------------------------
    public static void main(String[] args)throws Exception
	{
		AsyncSubscriber ms = new AsyncSubscriber();
        Thread.sleep(30000);
	}
}

⌨️ 快捷键说明

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