【发布时间】:2020-11-18 03:29:52
【问题描述】:
我正在使用 artemis-junit 依赖项
testImplementation("org.apache.activemq:artemis-junit")
使用 Spring Boot 2+,我有 2 个具有以下配置的 JMS 侦听器:
destination = "my.topic"
clientId = "sharedApp1"
subscription = "mySharedSub"
durable = "true"
shared = "true"
我想验证共享订阅是否有效,但是当我运行 JUnit 测试时,第二次监听会抛出
ActiveMQDuplicateMetaDataException[errorType=DUPLICATE_METADATA message=AMQ229035: Metadata jms-client-id=sharedApp1 had been set already]
堆栈跟踪:
javax.jms.JMSException: Failed to create session factory
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:886) ~[artemis-jms-client-2.13.0.jar:2.13.0]
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:299) ~[artemis-jms-client-2.13.0.jar:2.13.0]
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:294) ~[artemis-jms-client-2.13.0.jar:2.13.0]
at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:196) ~[spring-jms-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:412) ~[spring-jms-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.jms.listener.AbstractJmsListeningContainer.establishSharedConnection(AbstractJmsListeningContainer.java:380) ~[spring-jms-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.jms.listener.DefaultMessageListenerContainer.establishSharedConnection(DefaultMessageListenerContainer.java:818) ~[spring-jms-5.2.7.RELEASE.jar:5.2.7.RELEASE]
这是设计使然(开发人员帮助),因为我在同一个 JVM 中运行?还是我做错了什么?
【问题讨论】:
标签: spring-boot activemq-artemis