2010-04-07 8 views
15

Quando si tenta di avviare un progetto Web da Eclipse ottengo:ClassNotFoundException durante l'esecuzione di un progetto + Maven2 primavera su Tomcat 6 dall'interno di Eclipse 3.5


SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener 
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:583) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 

progetto ha iniziato a fallire quando sono passato a Fedora 12 x64. Il progetto ha funzionato su WinXP con la stessa configurazione.

Googling in giro ho trovato i messaggi affermando che andare a Progetto Proprietà -> Java EE modulo Dipendenze e controllando il Maven Dipendenze scatola risolve il problema. Purtroppo non ha funzionato per me.

Sto utilizzando Spring 2.5.6, Maven2, Eclipse 3.5 (con il plugin m2e 0.10.0), Tomcat 6 e Java 6 in esecuzione su Fedora 12 x64.

Qualcuno ha visto questo problema?

In caso aiuta qui è il mio file .classpath


<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" output="target/classes" path="src/main/java"/> 
    <classpathentry kind="src" output="target/classes" path="target/generated-sources/gpb"/> 
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> 
    <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> 

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> 

    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> 
     <attributes> 
      <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.iam.jdt.core.mavenClasspathContainer"> 
     <attributes> 
      <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 
    <classpathentry kind="output" path="target/classes"/> 
</classpath> 

Aggiornamento: Non ho problemi qualsiasi edificio o l'esecuzione del progetto al di fuori di Eclipse.

+0

Solo un'ipotesi: potrebbe essere perché org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER e org.eclipse.iam.jdt.core.mavenClasspathContenitore conflitto in qualche modo? –

risposta

19

Sembra che tu abbia entrambi gli articoli Eclipse IAM e M2Eclipse nel tuo .classpath. Vorrei fare un po 'di pulizia:

  • Utilizzare solo uno di questi plug-in (suggerisco di utilizzare M2Eclipse).
  • Eliminare il progetto dall'area di lavoro di Eclipse, eliminare .classpath e .project e importare nuovamente il progetto come progetto Maven.

Aggiornamento: per ottenere il supporto WTP con m2eclipse, è necessario installare il Maven integrazione per WTP dal sito di aggiornamento Extra m2eclipse: http://download.eclipse.org/m2e-wtp/releases/ come illustrato di seguito:

enter image description here

+0

@pascalthivent, Sembra che stavo usando Eclipse IAM prima dell'interruttore senza accorgermene. Ad ogni modo, ha fatto ciò che hai suggerito, ma ora il progetto non è visto da Eclipse come una Web App. Così ora non ho nemmeno l'opzione * Esegui come -> Esegui su server *. –

+0

@Elliot Questo perché non hai installato Maven Integration per WTP quando hai installato M2Eclipse. Aggiornerò la mia risposta per coprire questo. –

+0

Grazie Pascal, le ultime informazioni hanno risolto il mio problema. Ho rimosso il progetto, installato l'integrazione per WTP e importato di nuovo il progetto. Unico dettaglio era che dovevo disabilitare il plugin Maven, creare il progetto in un terminale e quindi riabilitare il plugin. Tutto funziona senza problemi ora. Un pensiero, mi sembra che Eclipse sia davvero in ritardo rispetto a NetBeans sul supporto Maven. Mi sento più produttivo in Eclipse, ma non posso permettermi di perdere tempo con cose come questa sul mio posto di lavoro. Penso che l'immagine di Eclipse sia offuscata dallo stato attuale dei plugin Maven. –

9

I aveva lo stesso sintomo con una causa diversa. Ho dovuto modificare il mio file .classpath. La voce Maven:

<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> 
    <attributes> 
     <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
    </attributes> 
</classpathentry> 

... mancava il tag attributi mostrato qui. Quando ho aggiunto gli attributi tag il problema è andato via. Sono molto curioso di come configurarlo nell'interfaccia di eclissi.

+0

sì ... che ha definitivamente cambiato il messaggio di errore in modo da un'applicazione correlata ... Immagino sia stata una mossa nella giusta direzione – Newtopian

+1

ah grazie per avermi lavorato, ho appena aggiunto e ora ok – tomasb

1

Di tanto in tanto, faccia con lo stesso problema.

Per qualche strana ragione, il problema poteva essere risolto in questo modo

1) Fare clic destro del mouse sul progetto Maven -> Disattiva Maven dipendenze

2) tasto destro del mouse sul progetto Maven -> Abilita Maven dipendenze

+1

Non ho queste opzioni in Eclipse 3.7 .2, intendevi "Disattiva Maven Nature"? – Betlista

Problemi correlati