Grails 2.0.0.RC3:无法重新加载对控制器的更改,java.lang.NoSuchFieldException:_时间戳__239_neverHappen1323622798918

Grails 2.0.0.RC3:无法重新加载对控制器的更改,java.lang.NoSuchFieldException:_时间戳__239_neverHappen1323622798918,grails,grails-controller,Grails,Grails Controller,自从我开始评估Grails2.0.0.RC3以来,最近一直出现这个错误。 我对控制器进行简单更改,然后保存 来自pictureList.count(),它以某种方式在1.3.7中起作用,但在2.0.0RC3中不起作用 def tagged = { def pictureList = Picture.findAllByTag(params.id) render(view: 'list', model: [pictureInstanceList:pictureList

自从我开始评估Grails2.0.0.RC3以来,最近一直出现这个错误。 我对控制器进行简单更改,然后保存

来自
pictureList.count()
,它以某种方式在1.3.7中起作用,但在2.0.0RC3中不起作用

def tagged = {
        def pictureList = Picture.findAllByTag(params.id)
        render(view: 'list', model: [pictureInstanceList:pictureList, 
            tag:params.id, pictureInstanceTotal:pictureList.count()])
}
转到
pictureList.size()
,因为pictureList的类型是ArrayList,所以这更有意义

def tagged = {
        def pictureList = Picture.findAllByTag(params.id)
        render(view: 'list', model: [pictureInstanceList:pictureList, 
            tag:params.id, pictureInstanceTotal:pictureList.size()])
}
我得到编译输出消息,让我知道发生了什么

| Compiling 1 source files
| Compiling 1 source files.
| Compiling 1 source files..
| Compiling 1 source files...
然后我重新加载页面,得到这个

| Error 2011-12-11 17:00:01,908 [Thread-7] ERROR plugins.AbstractGrailsPluginManager  
- Plugin [controllers:2.0.0.RC3] could not reload changes to file 
[/Users/gotomanners/Documents/Projects/sampleProject/grails-app/controllers/sampleProject/PictureController.groovy]: 
java.lang.NoSuchFieldException: __timeStamp__239_neverHappen1323622798918
Message: java.lang.NoSuchFieldException: __timeStamp__239_neverHappen1323622798918
   Line | Method
->> 632 | doCall in SpringSecurityCoreGrailsPlugin$_closure5
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
^   680 | run    in java.lang.Thread

Caused by NoSuchFieldException: __timeStamp__239_neverHappen1323622798918
->> 1882 | getDeclaredField in java.lang.Class
现在,从错误中恢复的唯一方法(我已经发现)是重新启动应用程序

有人遇到过这个问题吗??如果可能的话,我将尝试隔离问题,以便提交错误报告


我应该补充一点,这个应用程序最初是基于Grails1.3.7的,我最近将它升级到2.0.0RC1,现在升级到2.0.0RC3

您是否使用Intellij Idea并使用它运行grails应用程序? 如果是这样,您可以尝试Idea提供的临时解决方案:

将enable.groovy.hotswap=false添加到/bin/idea.properties并重新启动idea


这为我解决了这个问题

cntl+alt+G并在Intellij Idea中运行clean命令。。它必须起作用

为我工作

如果不起作用,将add enable.groovy.hotswap=false添加到/bin/idea.properties,然后运行clean


也很有效

你试过在邮件列表上提问吗?我在2.0.0.RC3中也遇到过这个问题。如果您可以始终如一地复制它,我建议您提交一份bug报告,但这会阻止类的重新加载吗?如果是这样的话,这不是一个很大的帮助-这个问题是intelliJ 10中的一个bug。通过与grails一起使用命令行、使用上述解决方法或升级到Intellij 11,修复了此问题。通过将enable.groovy.hotswap=false添加到/bin/idea.properties,可以防止此问题,并且仍然允许grails动态地重新加载更改。很好的解决方法。