【问题标题】:Dynamically set JMS selector动态设置 JMS 选择器
【发布时间】:2017-08-01 19:29:19
【问题描述】:

我正在尝试创建多个消费者,每个消费者只接收一种类型的消息,其中包含在消息上定义的某些属性:

例如,message.setProperty("id","someId");

我现在在为消费者设置选择器 JmsListener 时遇到问题:

@JmsListener(destination = "OMP.DEVICES", containerFactory = "jmsListenerFactory", selector=someVariable)  

我想从我收到的变量中动态设置选择器值..

private String someVariable;
public void setsomeVariable(Long id){
        someVariable="Id='"+id+"'";
}

但是我遇到了这个错误: The value for annotation attribute JmsListener.selector must be a constant

我该如何解决?

谢谢

【问题讨论】:

    标签: spring jms spring-jms


    【解决方案1】:

    消费者的选择字符串不能动态改变。消费者必须关闭并使用不同的选择字符串重新打开。

    【讨论】:

    • 但是选择字符串不会在同一个消费者身上动态改变。基本上我想创建一个消费者,它在其生命周期中具有相同的选择字符串,但它会被动态设置......因为我没有'没有找到任何解决方案,我只是做了一个过滤器,如果某个条件得到验证,则只读取该值
    猜你喜欢
    • 1970-01-01
    • 2021-04-17
    • 2012-03-04
    • 2018-04-19
    • 1970-01-01
    • 2012-12-04
    • 2017-11-08
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多