2017-09-12 1 views
0

J'essaie d'améliorer mon projet de grails de grails 1.1.1 aux grails 1.2.1. quand je suis en train d'exécuter ma demande que je reçois ci-dessous un message d'erreur:grils d'upgarding 1.1.1 à 1.2.1

I am using java 1.7._09 and GGTS 3.6.4. 

Ceci est mon fichier application.properties:

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

Mon GGTS est en utilisant le compilateur par défaut groovy 2.3. Devrais-je besoin de changer le complier groovy?

J'ai cherché dans Google, mais je ne comprenais pas: 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. 

J'ai trouvé le nom de servlet double dans .grails/***/ressources/web.xml lors de l'exécution de la course-app commande dans GGTS. Puis-je savoir pourquoi il génère un nom de servlet en double et comment résoudre ce problème?

+0

Résultat de la recherche Google: http://blog.proxerd.pl/article/how-to -fix-incompatibleclasschangeerror-pour-vos-groovy-projets-running-on-jdk7 –

+0

vous venez d'inventer la machine à remonter le temps! – injecteer

+0

Désolé je ne vous ai pas obtenu –

Répondre

0

Le blog indique que vous devez rechercher chaque classe qui étend l'exception de classe ou une sous-classe de celle-ci et la convertir d'une classe groovy en classe Java. Cependant, il semble que ce n'est pas votre code, mais le code Grails interne qui lève l'exception. En regardant vos questions précédentes, il semble que votre but final est de rendre votre guerre exécutable dans un environnement Java 7. Vous devriez rester sur java 6 pendant votre mise à niveau jusqu'à ce que vous ayez atteint une version Grails qui fonctionne sur Java 7. Après chaque mise à niveau réussie, compilez votre projet avec Java 6 et essayez de l'exécuter dans un conteneur de servlets qui s'exécute sur Java 7. Peut-être que vous avez de la chance et que ça marche.

Je suis assez sûr que ce ne sera pas le dernier problème. Je ne sais pas combien de lignes de code votre projet a, peut-être c'est une option pour réimplémenter l'ensemble du projet en grails 3.

+0

quand j'ai essayé de changer la version java à la version 1.6, je reçois ci-dessous "majeur non supporté version mineure 51.0". J'ai changé le complier de 1.7 à 1.6 dans les propriétés de variable système et de GGTS. Une autre chose étrange est que j'ai changé la version 2.1.1 de Tomcat à 1.2.1 alors je reçois "Causée par: java.lang.IllegalArgumentException: addChild: Le nom de l'enfant 'grails-errorhandler' n'est pas unique". J'ai vérifié le fichier web.xml dans le dossier .grails et trouvé deux servlets avec le même nom 'grails-errorhandler'. pourquoi il génère des doublons lors de l'exécution de l'application et comment résoudre ce problème? –

+0

C'est la douleur de la mise à niveau. Je ne suis pas assez vieux pour avoir une expérience avec une mise à niveau vers 1.2 :). Quelques conseils que je peux vous donner: Si les erreurs arrivent à être câblées, essayez 'grails clean'. Parfois, il était nécessaire de supprimer ou mieux, sauvegarder les répertoires de cache. Lisez et suivez les notes de mise à niveau http://docs.grails.org/1.3.9/guide/2.%20Getting%20Started.html#2.2%20Upgrading%20from%20previous%20versions%20of%20Grails. Créez un nouveau projet Grails avec la nouvelle version Grails et comparez les paramètres application.properties, Config.groovy et BuildConfig.groovy. Essayez 'grails upgrade'. – andi

+0

Veuillez ne pas modifier le contenu de la question d'origine de votre problème précédent à l'autre. Bien que je ne pense pas que cette question aidera quelqu'un en l'an 2017, quelqu'un avec le même problème de la nouvelle question et ne verra pas la relation avec des réponses sur le sujet précédent. J'avais tort de toute façon.La source de l'erreur était que la version du plugin tomcat n'était pas la même que la version de Grails. J'ai oublié que ça fonctionnait de cette façon avec les anciennes versions de Grails. – andi