在Tomcat 6 / Ubuntu 12.04上启动Grails 2.1.0应用程序时出现以下错误。
Error 500 - Internal Server Error.
groovy.lang.Closure.rehydrate(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lgroovy/lang/Closure;
此应用在Windows 7上的STS 3.0中使用run-app
并在Windows上使用Tomcat6时运行良好。
我手动部署了war
。
我见过针对部署到Cloud Foundry的应用报告的类似问题: Error 500: Closure.rehydrate at deploying grails app on cloud foundry但没有任何东西能给我任何线索。
该应用程序以前工作正常。我最近做了很多代码更改,包括安装ElasticSearch插件,但日志中的错误是指从gsps
构建视图。
INFO: Initializing Spring FrameworkServlet 'grails'
17-Sep-2012 11:34:47 org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet grails threw exception
java.lang.NoSuchMethodError: groovy.lang.Closure.rehydrate(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lgroovy/lang/Closure;
at org.codehaus.groovy.grails.web.taglib.GroovyPageTagBody.<init>(GroovyPageTagBody.java:65)
at org.codehaus.groovy.grails.web.taglib.GroovyPageTagBody.<init>(GroovyPageTagBody.java:49)
at org.codehaus.groovy.grails.web.pages.GroovyPage.createTagBody(GroovyPage.java:630)
at org.codehaus.groovy.grails.web.pages.GroovyPage$createTagBody.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
at gsp_bipboxindex_gsp.run(index.gsp:4)
任何线索都非常感激!
答案 0 :(得分:4)
Closure.rehydrate。看起来战争中有一个旧版本的groovy。检查war文件中的WEB-INF / lib目录,看它是否包含重复版本和旧版本的groovy。
答案 1 :(得分:0)
遇到此问题的其他人。 David对9月18日的评论是正确的,有些时候你的插件会带来旧版本的Groovy,这些版本在某些服务器上是不受支持的。以下是解决此问题的方法:
在BuildConfig.groovy中查找这些条目,并添加一行以排除groovy。
grails.project.dependency.resolution = {
inherits("global") {
excludes "groovy" //ADD THIS LINE
}