Grails jms 队列注释因最终参数而失败
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
它并没有失去它的类型,你从来没有指定过它。更改为
Groovy 可以在运行时推断类型,但正如您所拥有的,它只是
Object
并且这就是编译器所看到的。It didn't lose its type, you never specified it. Change to
Groovy can infer the type at runtime, but as you have it it's just
Object
and that's what the compiler sees.静态持有者在 1.4 中已弃用。您应该使用 grailsApplication 代替:
Static holders are being deprecated in 1.4. You should use grailsApplication instead:
不完全是问题的答案,但我认为这就是您真正想做的:
并将
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:
And put
jms.destinations.queue.key.in.config=ActualQueueName
in your Config.groovyCheck the grails jms docs here: serviceMethodListeners
Scroll down to the section labelled "Defining the Queue names and Subscriber topics through configuration"
这是 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