我正在使用Grails 2.2.2和GGTS 3.3M1。当我运行我的应用程序(grails run-app)并在groovy文件中更改某些内容时,Grails会重新编译该文件。在此过程中会发生以下错误输出:
| Error Unexpected problem clearing ThreadGroupContext beaninfo:
| Error java.lang.ClassCastException: java.beans.WeakIdentityMap cannot be cast to java.util.Map
| Error at org.springsource.loaded.agent.JVMPlugin.reloadEvent(JVMPlugin.java:77)
| Error at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1594)
| Error at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:396)
| Error at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:805)
| Error at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51)
| Error at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:218)
| Error at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:205)
| Error at java.lang.Thread.run(Thread.java:722)
Reloading: JVMPlugin: warning: unable to clear BEANINFO_CACHE, cant find field
编译似乎工作正常,但错误仍然存在。
答案 0 :(得分:9)
这是因为您使用的是JDK 1.7更新21.在该版本的JDK中有一些“移动”,状态清除逻辑需要在springloaded中进行更新。这已在弹出的代码库中修复,但暂时不会出现在新的grails版本中。较旧版本的JDK 1.7可以。您可以忽略该消息,但这意味着在重新加载类型时未清除某些状态 - 这意味着它可能看起来没有重新加载您可能对类型进行的某些更改。