Grails jms 队列注释因最终参数而失败

发布于 2024-11-10 15:17:40 字数 447 浏览 4 评论 0原文

我正在使用 Grails JMS 插件中的注释 grails.plugin.jms.Queue,但我不知道如何使用变量作为 name 属性的值。

像这样:

private static final inDebit = ConfigurationHolder.config.Q_IN_DEBIT

@Queue(name = inDebit )

这给了我以下错误:

属性“name”的类型应为“java.lang.String”;但在 @grails.plugin.jms.Queue 中发现类型“java.lang.Object”

但在我正在使用的 Grails 1.3.7、Grails JMS 插件 1.1

在我看来,inDebit 变量在某处丢失了其类型?

I am using the annotation grails.plugin.jms.Queue from the Grails JMS plugin, but I can't figure out how to use a variable as the value of the name attribute.

like this:

private static final inDebit = ConfigurationHolder.config.Q_IN_DEBIT

@Queue(name = inDebit )

Which gives me the following error:

Attribute 'name' should have type 'java.lang.String'; but found type 'java.lang.Object' in @grails.plugin.jms.Queue

I am using
Grails 1.3.7, Grails JMS Plugin 1.1

Looks to me like the inDebit variable loses its type somewhere?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

冷了相思 2024-11-17 15:17:40

它并没有失去它的类型,你从来没有指定过它。更改为

private static final String inDebit = ConfigurationHolder.config.Q_IN_DEBIT

Groovy 可以在运行时推断类型,但正如您所拥有的,它只是 Object 并且这就是编译器所看到的。

It didn't lose its type, you never specified it. Change to

private static final String inDebit = ConfigurationHolder.config.Q_IN_DEBIT

Groovy can infer the type at runtime, but as you have it it's just Object and that's what the compiler sees.

年少掌心 2024-11-17 15:17:40

静态持有者在 1.4 中已弃用。您应该使用 grailsApplication 代替:

def grailsApplication
private static final String inDebit = grailsApplication.config.Q_IN_DEBIT

Static holders are being deprecated in 1.4. You should use grailsApplication instead:

def grailsApplication
private static final String inDebit = grailsApplication.config.Q_IN_DEBIT
孤檠 2024-11-17 15:17:40

不完全是问题的答案,但我认为这就是您真正想做的:

@Queue(name = '$queue.key.in.config')

并将 jms.destinations.queue.key.in.config=ActualQueueName 放入您的 Config.groovy

检查 grails jms 文档在这里: serviceMethodListeners
向下滚动到标有“通过配置定义队列名称和订阅者主题”的部分

Not exactly an answer to the question, but I think this is what you really want to do:

@Queue(name = '$queue.key.in.config')

And put jms.destinations.queue.key.in.config=ActualQueueName in your Config.groovy

Check the grails jms docs here: serviceMethodListeners
Scroll down to the section labelled "Defining the Queue names and Subscriber topics through configuration"

北方的巷 2024-11-17 15:17:40

这是 Groovy 注释处理的限制:
https://issues.apache.org/jira/browse/GROOVY-3278

This is a limitation in Groovy annotations handling:
https://issues.apache.org/jira/browse/GROOVY-3278

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文