grails 2.1.4 および JDK 1.7 によって実装されたアプリケーションがあり、grails 2.4.0 および JDK 1.8 に移行する必要があります。
以下は、grails 2.4.0 への更新中に、弊社側で行われた変更です。
- BuildConfig.groovy および application.properties ファイル内のすべてのプラグインを更新しました。
多くのクラスが非推奨になっているため、以下の非推奨クラスの代わりに grails.util.Holders クラスを使用しました。
org.codehaus.groovy.grails.commons.ApplicationHolder org.codehaus.groovy.grails.commons.ConfigurationHolder org.codehaus.groovy.grails.plugins.PluginManagerHolder
一部のクラスについては、grails 2.4.0 に従ってインポート パッケージを変更しました。
- 最新の richUI プラグインが利用できないため、richUI プラグインの groovy クラスで ConfigurationHolder の代わりに Holders クラスを更新しました。
war の構築に成功し、tomcat で war を展開しました。
問題は、urlmappings.groovy からホーム コントローラーと適切な gsp へのリンクをリダイレクトできないことです。
- プロジェクト (index.gsp) 内の別の gsp にリダイレクトしようとしましたが、できませんでした。
- 新しい gsp(hello.gsp) を作成し、urlmappings.groovy から hello.gsp にリダイレクトしましたが、機能しませんでした。
アプリケーション URL http://localhost:8080/abcを読み込もうとすると、 http://localhost:8080/abc/login/authにリダイレクトされ、表示できないページが表示されます
デバッグ中、制御は urlmappings.groovy から bootstrap.groovy に移動し、さらにどこにも移動しません。
どんな助けでも感謝します。前もって感謝します
Urlmappings.groovy の追加
static mappings = {
"/$controller/$action?/$id?"{ constraint {
// ここに制約を適用します
} }
// Home
"/"(controller:"home",action:"index")
// Reports サービスurls
"/services/report"(controller: "BirtReport"){
action=[GET:"list"]
}
"500"(view:'/error')
}
アプリケーションの実行中に、stacktrace.log に以下のエラーが表示されます
エラー context.GrailsContextLoaderListener - アプリケーションの初期化中にエラーが発生しました: ServletContext リソース [/WEB-INF/applicationContext.xml] で定義された名前 'pluginManager' の Bean を作成中にエラーが発生しました: init メソッドの呼び出しに失敗しました。ネストされた例外は java.lang.RuntimeException です: クラス org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass org.springframework.beans.factory.BeanCreationException のクラス パラメーターを持つコンストラクターが見つかりません: ServletContext で定義された名前 'pluginManager' を持つ Bean の作成中にエラーが発生しましたリソース [/WEB-INF/applicationContext.xml]: init メソッドの呼び出しに失敗しました。ネストされた例外は java.lang.RuntimeException です: クラス org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass の Class パラメーターを持つコンストラクターが見つかりません
java.util.concurrent.FutureTask.run(FutureTask.java:266)
で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java ) :617)
java.lang.Thread.run(Thread.java:745) で
原因: java.lang.RuntimeException: クラス org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass の Class パラメータを持つコンストラクタが見つかりません
... 4 つ以上の
原因: java.lang.reflect.InvocationTargetException
... 4 つ以上の
原因: java.lang.NoClassDefFoundError: org/pentaho/di/core/logging/LogLevel
at java.lang.Class.privateGetDeclaredMethods(Class.java: 2693)
java.lang.Class.getDeclaredMethods(Class.java:1967) で
... 4 つ以上
原因: java.lang.ClassNotFoundException: org.pentaho.di.core.logging.LogLevel
at java.net.URLClassLoader$1.run( URLClassLoader.java:372)
で java.net.URLClassLoader$1.run(URLClassLoader.java:361)
で java.net.URLClassLoader.findClass(URLClassLoader.java:360)
で java.lang.ClassLoader.loadClass(ClassLoader.java: 424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 もっと見る