1

我的代码中有这个

consumer = session.createConsumer(session.createQueue("myQueue"));

它抛出以下异常

javax.jms.InvalidDestinationException: AMQ119019: Queue already exists test_simple_transaction_receiver
        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:406)
        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:304)
        at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.createQueue(ActiveMQSessionContext.java:546)
        at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.internalCreateQueue(ClientSessionImpl.java:1622)
        at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.createQueue(ClientSessionImpl.java:249)
        at org.apache.activemq.artemis.jms.client.ActiveMQSession.createConsumer(ActiveMQSession.java:628)
        at org.apache.activemq.artemis.jms.client.ActiveMQSession.createConsumer(ActiveMQSession.java:331)
        at consumeMessage(ReceiverClient.java:143)
4

2 回答 2

1

我使用了错误版本的artemis-jms-client. 我的经纪人是 Artemis 2.0.0,我使用的是artemis-jms-client1.5.3。

使用匹配的客户端库版本,接收工作。

我已经犯了一次这个错误,所以我在这里发布它以防它帮助其他人,或者我第三次。

于 2017-03-22T09:49:55.127 回答
1

Artemis 2.0.0 有一个新的寻址模型。如果您需要向后兼容,则必须以旧客户端连接的方式配置接受器。

所以,我建议只更新你的客户端。

于 2017-03-22T15:23:05.003 回答