我们在使用 grails 的生产环境中不断出现以下错误。它说给定的域类没有 get 方法。这种情况每隔几天就会在每分钟执行大约 300 次的代码上发生一次。我们无法重现它。
No signature of method: static DomainClass.get() is applicable for argument types: (java.lang.Long) values: [97]
有没有其他人遇到过这个问题?我们正在使用 grails 1.3.6。我们域类上的 id 是 gorm 默认值。我们正在运行 sun jvm 版本 1.6.0_17-b04。
更新:
今天发生错误时,我发现了更多信息。我们正在使用 JMS grails 插件,错误发生在接收 JMS 消息的类之一中。看起来 JMS 插件在 grails 完成引导应用程序之前开始传递消息。如果 grails 启动时队列中有消息,则异常开始出现在日志中。一旦 grails 一直启动,错误就会停止并且消息会正常处理。我的猜测是 grails 中的 spring 上下文是在将动态方法添加到 Domain 类之前启动的。