- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中,我添加了两个不同的 JmsListener,但是当我在 ActiveMQ 面板中运行项目时,只有其中一个主题有消费者!
那么我应该为每个 JmsListener 添加单独的 jmsListenerContainerFactory 配置吗??
@JmsListener(destination = "foo1")
public void foo1(final Message jsonMessage) throws JMSException {
...
}
@JmsListener(destination = "foo2")
public void foo12(final Message jsonMessage) throws JMSException {
...
}
编辑:这是来自 JMS 配置文件:
@Configuration
@EnableJms
public class FooJmsConfig {
@Bean
public ActiveMQConnectionFactory connectionFactory() {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(BROKER_URL);
connectionFactory.setPassword(BROKER_USERNAME);
connectionFactory.setUserName(BROKER_PASSWORD);
connectionFactory.setUseCompression(true);
connectionFactory.setClientID("FPP_API");
connectionFactory.setConnectionIDPrefix("DRR");
connectionFactory.setUseAsyncSend(true);
return connectionFactory;
}
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setConcurrency("1-1");
factory.setPubSubDomain(true);
factory.setSubscriptionDurable(true);
return factory;
}
}
最佳答案
我发现,通过将 setClientID()
从 ActiveMQConnectionFactory 提供程序方法移动到 DefaultJmsListenerContainerFactory 提供程序方法,
对于每个 jmsListener,我只能有一个全局 ActiveMQConnectionFactory 提供程序方法和多个 DefaultJmsListenerContainerFactory 提供程序方法:
所以最终的工作代码是:
JMS配置文件:
@Configuration
@EnableJms
public class FooJmsConfig {
@Bean
public ActiveMQConnectionFactory connectionFactory() {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(BROKER_URL);
connectionFactory.setPassword(BROKER_USERNAME);
connectionFactory.setUserName(BROKER_PASSWORD);
connectionFactory.setUseCompression(true);
connectionFactory.setConnectionIDPrefix("DRR");
connectionFactory.setUseAsyncSend(true);
return connectionFactory;
}
@Bean(name= "foo1")
public DefaultJmsListenerContainerFactory foo1() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setConcurrency("1-1");
factory.setPubSubDomain(true);
factory.setSubscriptionDurable(true);
connectionFactory.setClientID("FOO_1");
return factory;
}
@Bean(name= "foo2")
public DefaultJmsListenerContainerFactory foo2() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setConcurrency("1-1");
factory.setPubSubDomain(true);
factory.setSubscriptionDurable(true);
connectionFactory.setClientID("FOO_1");
return factory;
}
}
jms 监听器将是
@JmsListener(destination = "foo1", containerFactory="foo1")
public void foo1(final Message jsonMessage) throws JMSException {
...
}
@JmsListener(destination = "foo2", containerFactory="foo2")
public void foo12(final Message jsonMessage) throws JMSException {
...
}
关于java - 如何为多个主题配置多个JmsListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48600321/
我使用 Spring 的 @JmsListener (spring-jms-4.3.4.RELEASE.jar) 使用以下代码从 ActiveMQ 接收消息: @Component public cl
我有一个定义 2 个 JMSListener 的类。 1 个监听器用于客户端从使用 JMS 的服务器接收的消息 MyMessage1。另一个是 MyMessage2,它是由另一个程序生成的,而不是使用
我正在尝试使用具有 JMSListener 的 spring boot 启动一个应用程序以连接到外部 ActiveMQ,即使 ActiveMQ 已关闭,此应用程序也需要启动。 我在连接中使用了故障转移
我目前有一个 JMSListener,如下所示。它使用属性文件中的值选择器。这工作得很好。 @JmsListener(destination = "myQueueDest", select
我有一个 JMS 生产者发送两种消息:业务逻辑和心跳消息。目前,两者都由同一个接收器处理,但我现在尝试通过使用选择器为每个接收器提供专用的类。我遇到的问题是,每当我将选择器添加到接收器时,它就会停止接
我有一个 Spring 应用程序,它具有用 Spring 的 @JmsListener 注释的方法。该应用程序部署在多个节点上。在某些特定节点上,我需要禁用 JMS 监听器,以便它不会将消息从队列中拉
我正在使用 Spring 和 Jaxb 来监听 JMSQueue,然后将 JMS 消息解码到一个 Java 对象中。然后我希望在我的@JmsListener 端点上获得该 Java 对象。但是我得到了
我正在开发一项服务,在该服务中我监听队列、反序列化接收到的消息并将它们保存到数据库 (Oracle)。大致: @JmsListener(destination="some-destination")
我正在制作一个应用程序原型(prototype),以测试 future 应用程序的 Spring 消息传递功能。 我知道我们需要的一件事是在同一应用程序中处理来自 activemq 的主题和队列。因此
我目前正在致力于将 IBM Webshere 应用程序迁移到 Spring Boot。 作为其中的一部分,有一个 MDB 类需要转换为 @JmsListener。该 MDB 有一个监听多个队列的方法。
我使用的是 Spring Boot 版本 1.3.2。我正在使用 @JmsListener 来使用来自 activemq 的消息来获取我使用 JmsTemplate 创建/生成的消息。这是代码: @J
我正在遵循在方法级别使用 JmsListener 注释来使用 Spring JMS 的指南。我认为它可以工作,但由于我无法调试在该方法中设置的断点,或者 log4j 日志记录不起作用,甚至简单的 Sy
在这篇文章中,Garry Russell 解释了如何以编程方式创建多个 KafkaListener 来监听多个主题。.[这个设置实际上对我来说很成功] Kafka Spring: How to cre
我可以将多种类型的实例写入给定的目的地,例如: JmsTemplate template = ... Alpha alpha = new Alpha(...); Beta beta = new Bet
我希望能够从 application.properties 设置 @JMSlistener 目标 我的代码是这样的 @Service public class ListenerService {
有没有具体的方法可以做到这一点?我试图在这里找到解决方案,但找不到我需要的东西。我有一个 Spring Boot 应用程序,它将从命令行接受多个参数。有问题的参数是队列名称(即目的地)。它可以是我们众
几个月前我在这篇文章中问了基本相同的问题:How should a Spring JMS listener handle a message with an empty payload? ,但我得到的
我正在尝试基于@JmsListener 注释创建发布-订阅示例:https://github.com/lkrnac/book-eiws-code-samples/tree/master/05-jms/
我的代码中有一个 Spring JmsListener。它接收并使用了 2 天的消息,但是在这 2 天之后它突然没有收到来自外部 activemq 的消息。但是,它的队列中有一些待处理的消息。当我重置
在我的应用程序中,我有消息从一个队列移动到另一个队列,并且我想在日志中添加消息 ID。我试图弄清楚是否可以在实际处理消息之前拦截消息并在 MDC 字段中设置消息 ID,以便我可以在所有队列中跟踪此消息
我是一名优秀的程序员,十分优秀!