- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个应用程序原型(prototype),以测试 future 应用程序的 Spring 消息传递功能。
我知道我们需要的一件事是在同一应用程序中处理来自 activemq 的主题和队列。因此,在同一个 bean 中,我应该有一个由 @JmsListener 注释的方法,该方法将听到队列,另一个方法将听到主题。那可能吗?
更简单的方法是什么?我看到了一些使用 spring-jms 主题的答案,例如 this one但在这种情况下,我想我需要创建两个 DefaultMessageListenerContainer,一个用于主题,另一个用于队列。这是最好的解决方案吗?
有没有解决这个问题的注释方法?
最佳答案
以下是如何使用 Spring Boot 为主题设置第二个容器工厂的完整示例:
JmsDemoApplication.java:
package net.lenthe;
import javax.jms.ConnectionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
@SpringBootApplication
public class JmsDemoApplication {
@Autowired
private ConnectionFactory connectionFactory;
@Bean(name = "topicJmsListenerContainerFactory")
public DefaultJmsListenerContainerFactory getTopicFactory() {
DefaultJmsListenerContainerFactory f = new DefaultJmsListenerContainerFactory();
f.setConnectionFactory(connectionFactory);
f.setSessionTransacted(true);
f.setPubSubDomain(true);
return f;
}
public static void main(String[] args) {
SpringApplication.run(JmsDemoApplication.class, args);
}
}
MessageListenerBean.java:
package net.lenthe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
@Component
public class MessageListenerBean {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@JmsListener(destination = "myMessageTopic", containerFactory = "topicJmsListenerContainerFactory")
public void processTopicMessage(String content) {
logger.info("Received topic message. Content is " + content);
}
@JmsListener(destination = "myMessageQueue")
public void processQueueMessage(String content) {
logger.info("Received queue message. Content is " + content);
}
}
关于java - 使用主题和队列处理 @JmsListener 的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207720/
我使用 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,以便我可以在所有队列中跟踪此消息
我是一名优秀的程序员,十分优秀!