8
votes

Grails Run-App lancers aléatoires: java.lang.noclassDeffondesError: lorg / codehaus / groovy / grails / plugins / web / async / API / contrôleursAsyncapi

Lors du démarrage de My Grails 2.2.0 app, je reçois le message d'erreur au hasard comme ci-dessous, mais il réussit également au hasard en démarrant le haut sans erreur. Aucune modification du code, je viens d'essayer d'exécuter le GRAWS Dev Run-app code> plusieurs fois.

| Packaging Grails application.....
webxml.WebxmlGrailsPlugin Loading default config file: class DefaultWebXmlConfig
webxml.WebxmlGrailsPlugin Did not find application config file: WebXmlConfig
webxml.WebxmlGrailsPlugin Loading default config file: class DefaultWebXmlConfig
| Running Grails application
context.GrailsContextLoader [GrailsContextLoader] Loading context. Creating parent application context
context.ContextLoader Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
    ... 5 more
Caused by: java.lang.reflect.InvocationTargetException
    ... 5 more
Caused by: java.lang.NoClassDefFoundError: Lorg/codehaus/groovy/grails/plugins/web/async/api/ControllersAsyncApi;
    at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
    at java.lang.Class.getDeclaredFields(Class.java:1743)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.grails.plugins.web.async.api.ControllersAsyncApi
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 7 more
context.GrailsContextLoader Error initializing the application: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
    ... 5 more
Caused by: java.lang.reflect.InvocationTargetException
    ... 5 more
Caused by: java.lang.NoClassDefFoundError: Lorg/codehaus/groovy/grails/plugins/web/async/api/ControllersAsyncApi;
    at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
    at java.lang.Class.getDeclaredFields(Class.java:1743)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.grails.plugins.web.async.api.ControllersAsyncApi
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 7 more


3 commentaires

Vous pouvez essayer d'utiliser un utilitaire comme Jarscan Java.net/Projects/jarscan et vérifier si vous avez des différents version de la même libère dans votre application


Run-App utilise le plug-in Tomcat par défaut - sauf si vous avez installé le plug-in de la jetée. Avez-vous exécuté la mise à niveau GRAVES à tout moment? J'ai vu un comportement étrange avec 2.2.0 après avoir exécuté la mise à niveau de Grails. Peut-être donner un essai du plug-in jetée?


FYI - J'ai mis à jour Rom Grails 2.2.0 à Grails 2.2.1 et n'a pas encore eu la question. Observera plus loin.


3 Réponses :


5
votes

Essayez de marquer votre version de servlet en tant que v3.0. J'ai eu la même question sporadique et l'a résolu en passant à V.3.0

fichier: buildconfig.groovy

grails.servlet.version = "3.0" // Modifier en fonction de la conformité du conteneur cible (2.5 ou 3.0)

Après que les grails-plugin-async-2.2.0.jar sont apparus sur CLASSPATH:

% home% .GRails \ ivy-cache \ org.grails \ grails-plugin-async \ jars \


0 commentaires

12
votes

Après avoir changé la version Servlets de 3,0 à 2.5 (et inversement) et cette exception est apparue.

J'ai résolu ce problème en tapant: xxx

Les dépendances ont été récupéré à nouveau et l'application a commencé à courir.


0 commentaires

0
votes

Essayez de supprimer la cible manuellement au cas où le nettoyage ne fonctionne pas.


0 commentaires