没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
使用 JAVA AMQP 协议如何订阅启用分区的 Topic 的消息
问题:
通常借助 Java JMS API 使用 AMQP 协议订阅启用分区的 Azure Service Bus Topic,会
报错, 而订阅未启用分区功能的 Azure Service Bus Topic 就正常。
报错信息为:
JMS Exception: Cannot open a Topic client for entity type Subscriber
解决方法:
使用 Azure Service Bus Queue 订阅的方式订阅 Topic 消息,Topic 订阅者对应 queue
的 entity path 为 [Topic Name]/Subscriptions/[Subscription Name]
代码如下:
Context context = new InitialContext();
ConnectionFactory factory = (ConnectionFactory) context.lookup("myFactoryLookup");
Connection connection = factory.createConnection(USER, PASSWORD);
connection.setExceptionListener(new ExceptionListener());
connection.start();
TopicSession session = (TopicSession) connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("test");
// 对未启用 partition 的 topic 可以用 TopicSubscriber 订阅消息
// TopicSubscriber subscriber = session.createDurableSubscriber(topic,
"subscription1");
// subscriber.setMessageListener(new MessageListener());
// 对启用 partition 的 topic 只能用 MessageConsumer 来订阅消息
MessageConsumer messageConsumer =
session.createConsumer(session.createQueue("test/Subscriptions/sub1"));
messageConsumer.setMessageListener(new MessageListener());
高工-老罗
- 粉丝: 19
- 资源: 314
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0