首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在spring主题中指定名称

在spring主题中指定名称
EN

Stack Overflow用户
提问于 2017-05-03 10:55:32
回答 2查看 1.3K关注 0票数 0

我正在使用spring连接到WSO2MB服务器。一切正常,但所有侦听器都被分配了相同的id。为了使其独一无二,我提供了clientId,但它不起作用。我没有找到任何其他领域,我可以提供名称。

我甚至在JMS侦听器上提供了id,但没有成功。

代码语言:javascript
复制
@Bean
@ConditionalOnProperty(name="my.listener.active", matchIfMissing = true)
public JmsListenerContainerFactory jmsListenerContainerFactory(@Qualifier("listenerConnectionFactory") ConnectionFactory connectionFactory) throws URLSyntaxException {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory);
    factory.setClientId("listener"+listenerTopic);
    if (Boolean.valueOf(listenerTopic)) {
        factory.setSubscriptionDurable(true);
        factory.setPubSubDomain(true);
    }
    return factory;
}

@JmsListener(destination = "${default-queue-name-to-listen}", id = "${default-queue-name-to-listen}")
public void receiveMessage(final Message<T> message) throws JMSException {
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-04 21:51:51

订阅名称使连接名成为唯一,并解决了我的问题。

代码语言:javascript
复制
@JmsListener(
        destination = "${default-queue-name-to-listen}",
        subscription = "${default-queue-name-to-listen}"
    )
    public void receiveMessage(Message<T> message) throws JMSException {}
票数 0
EN

Stack Overflow用户

发布于 2017-05-03 13:10:16

每个连接都需要一个唯一的clientID

void clientID) 设置要用于创建的连接的clientID。请注意,这只能同时由一个连接使用,所以通常在连接上设置clientID是一个更好的主意。

您的解决方案是使用org.springframework.jms.connection.SingleConnectionFactory

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43758044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档