订阅多个主题_「Weblogic学习」Weblogic知识要点之JMS发布与订阅实例演示

fef070ca834f3003dbee1a6521db8d5f.png

互联网的时代,喜欢她就关注她,然后我们就能收到她的动态。你想知道这是什么原理,怎么实现的吗?JMS订阅与发布功能就能揭开这层神秘的面纱,一起看看吧……

每一个消息可以有多个消费者。

向某个话题订阅的客户程序只能收到那些在它订阅之后发布的消息。为了接收到消息, 订阅者必须保持活动状态。因此,发布者和订阅者之间存在时间上的依赖关系。JMS API在一定程度上放宽了对这种依赖关系的要求,允许创建持久性订阅(Durable Subscription)。有了持久性订阅,当订阅者不活动时发送的消息也能接收到。

下面的实例是非持久性订阅:

① Commons.java 公有类

② TopicProducer.java 主题发布类

package com.lession.day1024.topic;import java.util.Date;import javax.jms.Session;import javax.jms.TextMessage;import javax.jms.Topic;import javax.jms.TopicConnection;import javax.jms.TopicConnectionFactory;import javax.jms.TopicPublisher;import javax.jms.TopicSession;import javax.naming.Context;import com.lession.day1024.Commons;public class TopicProducer{private TextMessage msg;private TopicPublisher producer;//private MessageProducer producer;public TopicProducer() throws Exception{this("topic");}public TopicProducer(String jndiName)throws Exception{Context context = Commons.getInitialContext();TopicConnectionFactory factory = (TopicConnectionFactory) context.lookup(Commons.TOPICCONNECTION_FACTORY_JNDI);TopicConnection connection = factory.createTopicConnection();connection.start();//创建一个TopicTopic topic = (Topic) context.lookup("topic");TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);producer = session.createPublisher(topic);//producer = session.createProducer(topic);msg = session.createTextMessage();}public void sendMessage(String str)throws Exception{msg.setText(str);producer.send(msg);}public static void main(String[] args){try{TopicProducer topic = new TopicProducer("topic");for (int i = 0; i < 3; i++){topic.sendMessage("Hello Topic" + i + 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值