【问题标题】:How do I make a JMS topic variable in Grails?如何在 Grails 中创建 JMS 主题变量?
【发布时间】:2015-08-05 03:50:56
【问题描述】:

我最近在尝试使我的 JMS @Subscriber 的主题成为基于环境的变量时遇到了问题。目前,我的 config.groovy 中有:

environments {
    development {
        jms.foo.msg = "my.jms.topic.dev.1_0"
    }
    test {
        jms.foo.msg = "my.jms.topic.tst.1_0"
    }
    production {
        jms.foo.msg = "my.jms.topic.prd.1_0"
    }
}

在我的服务中,我有我的@Subscriber,我有这个:

@Subscriber(
            topic = grailsApplication.config.jms.foo.msg,
            container = 'matter',
            adapter = 'durable'
)

我得到的错误是: “预期 'grailsApplication.config.jms.foo.msg' 是一个内联常量。”

我已经尝试了许多在这里获取配置值的变体。我正在寻找的是如何在特定环境中订阅正确的主题。任何想法都表示赞赏。

【问题讨论】:

    标签: grails jms jms-topic


    【解决方案1】:

    尝试使用 Holders(自 Grails v2.0 起):

    import grails.util.Holders

    然后使用:

    @Subscriber( topic = Holders.getConfig().jms.foo.msg, container = 'matter', adapter = 'durable' )

    【讨论】:

    • 我试过这个并且遇到了同样的问题。我最终所做的是: ' def onMessage(msg) {...some code} 这允许使用配置值,而注释似乎没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2020-06-04
    • 2012-02-12
    • 2012-01-14
    • 2013-02-15
    相关资源
    最近更新 更多