- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前有一个 JMSListener,如下所示。它使用属性文件中的值选择器。这工作得很好。
@JmsListener(destination = "myQueueDest",
selector = MyHeaders.SELECTOR_KEY + " = '${myapp.selector_val}'")
private void consumeData(MyCustomObj mycustomObj) { }
我现在需要使用具有内存中值的动态选择器,而不是 spring 属性。有没有办法使用 JMSListener (或其他一些监听器机制)来从 ActiveMQ 队列中进行选择?
更新:
可以为我的 @JMSListener
分配一个 ID,然后从我的 JmsListenerEndpointRegistry
bean 中检索它。通过 ID 获取监听器容器,将其转换为 DefaultMessageListenerContainer
,然后调用 setMessageSelector()
,尽管我不完全确定这是否有效。
这需要将我的 DefaultJmsListenerContainerFactory bean 设置为具有 CACHE_SESSION
的缓存级别。
但这似乎不起作用,因为无论我将消息选择器设置为什么,监听器都会拾取所有消息。
最佳答案
JMS 规范规定在创建使用者时必须提供选择字符串。所以答案是否定的。消费者必须关闭并使用不同的选择字符串重新创建,才能接收匹配不同选择标准的消息。
如果您的项目不需要使用 JMS API,那么您可以探索使用 Active MQ 的 native API。我确信 API 将有办法在每次调用接收时指定不同的选择字符串。 IBM MQ 的 native API 提供了这样的功能。
关于java - JMSListener - 动态选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39472329/
我使用 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,以便我可以在所有队列中跟踪此消息
我是一名优秀的程序员,十分优秀!