2017-09-12 8 views
0

grailsプロジェクトをgrails 1.1.1からgrails 1.2.1にアップグレードしようとしています。 私は、エラーメッセージの下に取得しています私のアプリケーションを実行しようとしています:upgarding grails 1.1.1から1.2.1

I am using java 1.7._09 and GGTS 3.6.4. 

これは私のapplication.propertiesファイルです:

when I am trying to add tomcat 1.2.1 in my application.properties file I am getting below error: 

私GGTSはデフォルトグルーヴィーコンパイラ2.3を使用しています。私はグルーヴィーコンパイラを変更する必要がありますか?

私はグーグルで検索しましたが、私は理解していなかった

search result from google

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:155) 
    at gant.Gant.processTargets(Gant.groovy:480) 
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRunner.java:485) 
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:301) 
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.java:115) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:215) 
    at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:240) 
Caused by: java.lang.IllegalArgumentException: addChild: Child name 'grails-errorhandler' is not unique 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:781) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
    at org.apache.catalina.core.StandardContext.addChild(StandardContext.java:2128) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:925) 
    at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:193) 
    at org.apache.tomcat.util.digester.Rule.end(Rule.java:229) 
    at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1140) 
    ... 438 more 
startup.ContextConfig Occurred at line 7 column 422 
startup.ContextConfig Marking this application unavailable due to previous error(s) 
core.StandardContext Error getConfigured 
core.StandardContext Context [/BASF_bdw] startup failed due to previous errors 
Server running. Browse to http://localhost:8080/BASF_bdw 
plugins.DefaultGrailsPluginManager Started to scan for plugin changes in every 5000ms. 

実行アプリを実行している間、私は.grails/*** /リソース/ web.xmlに重複したサーブレット名を発見しましたGGTSのコマンド。

<servlet> 
<servlet-name>grails-errorhandler</servlet-name> 
<servlet-class>org.codehaus.groovy.grails.web.servlet.ErrorHandlingServlet</servlet-class> 
</servlet> 
<servlet> 
<servlet-name>grails-errorhandler</servlet-name> 
<servlet-class>org.codehaus.groovy.grails.web.servlet.ErrorHandlingServlet</servlet-class> 
</servlet> 

私はなぜそれが重複したサーブレット名を生成しているのか、これを修正する方法を知っているかもしれませんか?

+0

Google検索結果:http://blog.proxerd.pl/article/how-to -fix-incompatibleclasserror-for-groovy-projects-running-on-jdk7 –

+0

あなたはちょうどタイムマシンを発明しました! – injecteer

+0

申し訳ありませんが、 –

答えて

0

ブログでは、Exceptionクラスまたはそのサブクラスを拡張するすべてのクラスを検索し、GroovyからJavaクラスに変換する必要があると述べています。しかし、あなたのコードではないようですが、例外をスローする内部のGrailsコードです。

あなたの前の質問を見ると、あなたの戦争をJava 7環境で実行可能にすることが最終目標であるようです。 Java 7で動作するGrailsバージョンを起動するまでは、アップグレード時にJava 6に固執する必要があります。 アップグレードが成功するたびに、Java 6でプロジェクトをコンパイルし、Javaで動作するサーブレットコンテナで実行しようとします7.おそらくあなたは幸運で、それはちょうどうまくいきます。

私はこれが最後の問題ではないと確信しています。 プロジェクトのコード行数はわかりませんが、プロジェクト全体をgrails 3で再実装することもできます。

+0

Javaバージョンを1.6に変更しようとしましたが、「サポートされていないメジャーマイナーバージョン51.0」より下になりました。システム変数とGGTSプロパティの両方でコンパイラを1.7から1.6に変更しました。 さらに奇妙なことに、私はTomcatバージョン2.1.1を1.2.1に変更しています。「原因:java.lang.IllegalArgumentException:addChild:子の名前 'grails-errorhandler'が一意ではありません」。私は.grailsフォルダ内のweb.xmlファイルをチェックし、同じ名前の 'grails-errorhandler'という2つのサーブレットを見つけました。なぜアプリケーションを実行している間に重複を生成しているのですか?これを修正する方法は? –

+0

それはアップグレードの苦痛です。私は1.2にアップグレードした経験があるほど老いていません:)。私はあなたに与えることができるいくつかのヒント:エラーが有線になったら、 'grails clean'を試してみてください。場合によっては、キャッシュ・ディレクトリを削除するか、より良い方法でバックアップする必要がありました。アップグレードノートhttp://docs.grails.org/1.3.9/guide/2.%20Getting%20Started.html#2.2%20Upgrading%20from%20previous%20versions%20of%20Grailsを読み、それに従ってください。 Grailsの新しいバージョンで新しいGrailsプロジェクトを作成し、application.properties、Config.groovy、BuildConfig.groovyの設定を比較します。 'grails upgrade'を試してみてください。 – andi

+0

元の質問の内容を前回の問題から次の問題に編集しないでください。私はこの質問が2017年の誰にも役立つとは思っていませんが、新しい質問と同じ問題を抱えていて、前のトピックに関する回答との関係は見られません。とにかく私は間違っていた。エラーの原因は、TomcatプラグインのバージョンがGrailsのバージョンと同じではなかったことです。古いGrailsリリースではそれがうまくいくのを忘れてしまった。 – andi

関連する問題