📄 syncmessageconsumer.java
字号:
/*同步消息接收程序,从主题接收*/
package topic;
import java.util.Properties;
import javax.rmi.PortableRemoteObject;
import javax.naming.InitialContext;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.jms.JMSException;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
public final class SyncMessageConsumer{
private static TopicSubscriber subscriber;
private static TextMessage msg;
private static final String url = "t3://localhost:7001";
public static void main(String [] argv) throws Exception
{
try{
//设置初始上下文
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, url);
//获取初始上下文
Context ctx = new InitialContext(env);
//1:通过JDNI查找ConnectionFactory
TopicConnectionFactory tConFactory = (TopicConnectionFactory)
ctx.lookup("weblogic.jms.ConnectionFactory");
//2:用ConnectionFactory建立JMS连接
TopicConnection tCon = tConFactory.createTopicConnection();
//3:用Connection创建会话
TopicSession session = tCon.createTopicSession(
false, /* not a transacted session */
Session.AUTO_ACKNOWLEDGE
);
//4:通过JDNI查找目的(消息队列)
Topic messageTopic = (Topic) ctx.lookup("MessageTopic");
//5:创建消息订阅者,使用QueueConnection接口的start()方法接收消息
subscriber = session.createSubscriber(messageTopic);
tCon.start();
//6:创建文本消息,并接收
msg = (TextMessage) subscriber.receive();
System.err.println("Received: "+msg.getText());
msg = (TextMessage) subscriber.receive();
System.err.println("Received: "+msg.getText());
}catch (JMSException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -