我有grails申请。它用grails 1.3.7编写,后来升级为grails 2.2.4。每次我第一次运行时都会出现以下错误(例如在另一台计算机上清理安装后或在.grails目录中删除项目文件夹后):
Caused by IllegalArgumentException: [Assertion failed] - this expression must be true
->> 340 | newInstance in org.grails.plugin.config.AbstractConfigHelper$ConfigObjectProxy
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 111 | doCall in org.grails.plugin.config.DefaultConfigHelper$_enhanceConfigObjectClass_closure3
| 1 | run . . . in Script1
| 160 | afterPropertiesSet in grails.plugin.transaction.handling.TransactionHandlingPostProcessor
| 262 | run . . . in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 744 | run in java.lang.Thread
我通过改变来摆脱它:
Assert.isTrue(interfaces.remove(GroovyObject.class));
到
if (interfaces.contains(GroovyObject.class)) {
Assert.isTrue(interfaces.remove(GroovyObject.class));
}
从那时起它似乎无懈可击,一切正常,但我想知道问题首先是什么,如果我弄乱了什么。
它发生在Windows和Linux上。我们使用
(我不认为其他插件与此问题有任何关系)。
你们中的任何人都知道会发生什么吗?
答案 0 :(得分:2)
您也应该升级插件,或者至少检查它们是否与更新版本的Grails兼容。从plugin-config
开始来自plugin-config的摘录:
//For Grails 2.x
plugins {
compile ':plugin-config:0.2.0'
}
我认为上述插件升级将解决此问题。我也希望你不再需要transaction-handling
插件。但是会积极建议升级他人。