我正在使用 Java 和 Qpid JMS 0.23 对 pub/sub 进行测试。
我在 SB 中创建了一个名为“test.topic”的主题。
我可以从测试应用程序向主题发布消息,但是当尝试订阅(动态创建订阅)时,它会失败并出现异常:
javax.jms.InvalidDestinationException:找不到消息传递实体“mynamespace:topic:test.topic~15|DurableSubscriber2”。TrackingId:12ecc2a3-f8f3-42a3-8bd5-ad5d9823c367_B20, SystemTracker:mynamespace:topic:test.topic~15|DurableSubscriber2, Timestamp:8/8/2017 12:13:31 PM TrackingId:7e0d46404c8c45f39bfftff21b77c7a140_G /8/2017 12:13:31 PM [条件 = amqp:not-found]
一些代码:
env.put("topic.TOPIC", "test.topic");
Context context = new InitialContext(env);
ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("SBCF");
Topic topic = (Topic) context.lookup("TOPIC");
connection = connectionFactory.createConnection("user", "secret");
subscriberSession = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
subscriber = subscriberSession.createDurableConsumer(topic, "DurableSubscriber2");
- 是否可以从应用程序在 SB 中创建主题订阅?
如果我在主题上创建一个名为“sub1”的静态订阅,它会接收已发布的消息。检索时,我需要将主题定义为:
test.topic/Subscriptions/sub1
IE
<<topic-name>>/Subscriptions/<<subscription-name>>
- 动态订阅时是否需要一些类似的命名?