1

Tomcat 6 / Ubuntu12.04でGrails2.1.0アプリを起動すると、次のエラーが発生します。

Error 500 - Internal Server Error.

groovy.lang.Closure.rehydrate(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lgroovy/lang/Closure;

このアプリはrun-app、Windows7のSTS3.0で使用し、WindowsでTomcat6を使用しても正常に動作します。

war手動でデプロイしました。

Cloud Foundryにデプロイされたアプリについて同様の問題が報告されています: エラー500:クラウドファウンドリにgrailsアプリをデプロイする際のClosure.rehydrateですが、手がかりは何もありません。

アプリは以前は正常に動作していました。最近、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)

手がかりは大歓迎です!

4

2 に答える 2

4

Closure.rehydrateは Groovy 1.8.5 で導入されました。戦争には古いバージョンの groovy があるようです。war ファイル内の WEB-INF/lib ディレクトリをチェックして、古いバージョンの groovy が重複して含まれていないかどうかを確認します。

于 2012-09-18T03:28:19.467 に答える
0

この問題に遭遇している他の人へ。9 月 18 日の David のコメントは正しいです。一部のサーバーではサポートされていない古いバージョンの Groovy をプラグインが取り込む場合があります。これを修正するには、次のことを行う必要があります。

BuildConfig.groovy 内でこれらのエントリを見つけ、groovy を除外する行を追加します。

grails.project.dependency.resolution = {
    inherits("global") {
        excludes "groovy" //ADD THIS LINE
}
于 2015-08-19T13:56:12.403 に答える