2013-03-27 9 views
8

All'avvio della mia app Grails 2.2.0, ottengo a caso il messaggio di errore come sotto, ma riesce anche casualmente ad avviarsi senza un errore. Nessuna modifica al codice, cerco solo di eseguire lo grails dev run-app più volte.grails run-app genera casualmente: java.lang.NoClassDefFoundError: Lorg/codehaus/groovy/grails/plugins/web/async/api/ControllersAsyncApi

$ grails dev run-app 

Ho anche provato un grails clean prima, ma che non fa differenza; l'errore si verifica ancora in modo casuale.

Errori all'avvio:

| 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 

Ambiente:

  • Mac OS X Lion
  • JDK 1.6.0_31

post simile, ma ancora diverso, come I' m non funziona Tomcat:

+0

Puoi provare a utilizzare un'utilità come jarscan http://java.net/projects/jarscan e verificare se hai una versione diversa della stessa lib nella tua app –

+0

Esegui-app utilizza il plug-in Tomcat di default - a meno che tu ho installato il plugin jetty. Hai eseguito l'aggiornamento dei grails in qualsiasi momento? Ho visto alcuni strani comportamenti con 2.2.0 dopo aver eseguito l'aggiornamento dei grails. Forse provi il plug-in per il molo? – nickdos

+0

fyi - Ho aggiornato Rom Grails 2.2.0 in Grails 2.2.1 e non ho ancora avuto il problema. Osserverà ulteriormente. –

risposta

5

Provare per contrassegnare la versione servlet come v3.0. Ho avuto lo stesso problema sporadico e risolto passando a v.3.0

File: BuildConfig.groovy

grails.servlet.version = "3.0" // cambiare a seconda rispetto contenitore di destinazione (2.5 o 3.0)

Dopo che graal-plugin-async-2.2.0.jar apparso sul classpath:

% home% .grails \ edera-cache \ org.grails \ graal-plugin-asincroni \ vasetti \

11

Dopo aver modificato la versione delle servlet da 3.0 a 2.5 (e viceversa) e questa eccezione a ppeared.

Ho risolto questo problema digitando:

grails clean 
grails clean-all 

Le dipendenze è stata scaricata di nuovo e l'applicazione si mise a correre.

0

Cercare di rimuovere manualmente il target nel caso in cui la pulizia non funzioni.

Problemi correlati