📄 asyncconsumer.java
字号:
/*******************************************************************
<br>Copyright (C), 2004-2006, yeeku.H.Lee
<br>Program Name:AsyncConsumer.java
<br>作用:演示队列消息异步消费者程序
<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.Queue;
import javax.jms.Message;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.InitialContext;
import java.util.Properties;
public final class AsyncConsumer implements MessageListener
{
private QueueReceiver receiver;
private TextMessage msg;
public AsyncConsumer()throws NamingException,JMSException
{
Context ctx = getInitialContext();
QueueConnectionFactory qConFactory = (QueueConnectionFactory)ctx.lookup("weblogic.jms.ConnectionFactory");
Queue messageQueue = (Queue)ctx.lookup("MessageQueue");
QueueConnection qCon = qConFactory.createQueueConnection();
QueueSession session = qCon.createQueueSession(false,/*不是事物性会话*/Session.AUTO_ACKNOWLEDGE);
receiver = session.createReceiver(messageQueue);
//receiver = session.createReceiver(messageQueue,"ConType='txt'");
receiver.setMessageListener(this);
qCon.start();
}
public void onMessage(Message m)
{
TextMessage msg = (TextMessage)m;
System.out.println("接收的消息:" + msg.toString());
}
//----------------公用函数,用来获取命名服务的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
{
AsyncConsumer consumer = new AsyncConsumer();
Thread.sleep(30000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -