ある環境で問題なく動作する Grails 2.4.2 アプリケーションがあります。ここで、Maven リポジトリへのアクセスに関連するいくつかの制限がある別の環境でセットアップする必要があります。そのため、BuildConfig.groovy ファイルにいくつかの変更を加えて、新しい環境でアプリケーションが正常に動作するようにする必要がありました。JAR とカスタム プラグインのコードのローカル バージョンにアクセスできます。
JAR をローカルの Maven リポジトリにインストールし、カスタム プラグインのコード ファイルをプロジェクト コードと同じディレクトリにローカルに配置しました。発生したエラーを解決するために、BuildConfig.groovy ファイルに次の変更を加えました。
ローカル カスタム プラグインを指定します。
grails.plugin.location."custom-plugin" = "../custom-plugin/"
plugins ブロック内の次のステートメントの代わりに:
compile ':custom-plugin:1.0'
repositories ブロックで次を指定します。
mavenRepo "http://repo.grails.org/grails/core"
mavenRepo "http://repo.grails.org/grails/plugins/"
依存関係ブロックで次を指定します。
compile 'org.springframework:spring-aop:4.0.5.RELEASE'
compile 'org.springframework:spring-expression:3.0.2.RELEASE'
grails run-app
ただし、これらの変更により、理解できない奇妙なエラーメッセージが表示されます。エラーログは次のとおりです。
Error |
2015-04-01 11:18:50,655 [localhost-startStop-1] ERROR context.ContextLoader - Context initialization failed
Message: Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL
Line | Method
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 918 | run in ''
^ 662 | run . . in java.lang.Thread
Caused by NoSuchFieldError: NULL
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 918 | run in ''
^ 662 | run . . in java.lang.Thread
Error |
2015-04-01 11:18:50,716 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL
Message: Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL
Line | Method
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 918 | run in ''
^ 662 | run . . in java.lang.Thread
Caused by NoSuchFieldError: NULL
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 138 | run in java.util.concurrent.FutureTask
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 918 | run in ''
^ 662 | run . . in java.lang.Thread
Process finished with exit code 1
この奇妙なエラーが発生する理由と、これを解決するにはどうすればよいかについて、誰かが親切に教えてくれますか?
どんな助けでも大歓迎です。