何らかの理由で、「grails war」は「WEB-INF/lib」に「groovy-1.6.9.jar」および「groovy-all-1.7.8.jar」ファイルを含めています。Grails 1.3.7 を使用していますが、Tomcat でこの war をデプロイすると、次のエラーが表示されます。
org.springframework.beans.factory.BeanCreationException: ServletContext リソース [/WEB-INF/applicationContext.xml] で定義された 'pluginManager' という名前の Bean の作成中にエラーが発生しました: init メソッドの呼び出しに失敗しました。ネストされた例外は java.lang.NoSuchMethodError: org.codehaus.groovy.control.SourceUnit.getSource()Lorg/codehaus/groovy/control/io/ReaderSource; です。
戦争を展開できる唯一の方法は、古い groovy ファイルを削除することであり、アプリケーションは正常に動作します。
依存関係プロセスをデバッグしましたが、見つけたのはこれだけでした:
[NOT REQUIRED] org.codehaus.groovy#groovy;1.6.9!groovy.jar
...
:: evicted modules:
junit#junit;3.8.2 by [junit#junit;4.8.1] in [test]
in org.codehaus.groovy#groovy;1.6.9 with latest-revision
それで、私は続けて、以下を含むファイル 'org.codehaus.groovy.modules.http-builder/http-builder/ivy-0.5.0-RC2.xml' にたどり着きました:
<dependency org="org.codehaus.groovy" name="groovy" rev="[1.5,1.6.99)"
この行を「[1.7,1.7.8)」に変更したところ、依存関係のプロセスは正常に機能し、戦争は問題なく展開されるようになりましたが、これまで触れたことがなく、心配です。これは Grails の依存関係を進める正しい方法ですか?
これはすべて、JQuery UI プラグインをインストールした後に発生し始め、それを削除した後でも問題は続きました。
ありがとう