2010-04-07 9 views
15

Podczas próby uruchomienia projektu WWW z poziomu Eclipse uzyskać:ClassNotFoundException podczas uruchamiania Wiosna projekt + Maven2 na Tomcat 6 od wewnątrz 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) 

Projekt rozpoczął się niepowodzeniem, gdy przeszedłem do Fedory 12 x64. Projekt pracował na WinXP z taką samą konfiguracją.

Googling wokół znalazłem posty twierdząc, że zamierza Projektu Właściwości -> Java EE Moduł Zależności i sprawdzanie Maven Zależności pole rozwiązuje ten problem. Niestety nie zadziałało to dla mnie.

Używam Spring 2.5.6, Maven2, Eclipse 3.5 (z wtyczką m2e 0.10.0), Tomcat 6 i Java 6 działającymi na Fedorze 12 x64.

Czy ktoś widział ten problem?

W przypadku pomaga tu jest mój plik .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> 

Aktualizacja: Nie mam żadnych problemów z budynku lub prowadzenie projektu poza Eclipse.

+0

Po prostu zgadnij: czy może to być spowodowane konfliktami organizacyjnymi org.multse.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER i org.eclipse.iam.jdt.core.mavenClasspathContainer? –

Odpowiedz

19

Wygląda na to, że masz różne rzeczy: Eclipse IAM i M2Eclipse w swoim .classpath. Zrobiłabym porządek:

  • Używaj tylko jednej z tych wtyczek (sugeruję użycie M2Eclipse).
  • Usuń swój projekt z obszaru roboczego Eclipse, usuń .classpath i .project i ponownie zaimportuj projekt jako projekt Maven.

Aktualizacja: Aby uzyskać wsparcie WTP z M2Eclipse, trzeba zainstalować Maven integracyjne dla WTP z witryny aktualizacji Dodatki m2eclipse: http://download.eclipse.org/m2e-wtp/releases/ jak pokazano poniżej:

enter image description here

+0

@pascalthivent, Wydaje się, że używałem Eclipse IAM przed przełącznikiem, nie zauważając. W każdym razie, zrobiłeś to, co zasugerowałeś, ale teraz projekt nie jest postrzegany przez Eclipse jak aplikacja internetowa. Więc teraz nie mam opcji * Uruchom jako -> Uruchom na serwerze *. –

+0

@ Elliot To dlatego, że nie zainstalowałeś Maven Integration for WTP podczas instalacji M2Eclipse. Zaktualizuję moją odpowiedź, aby to uwzględnić. –

+0

Dzięki Pascal, ta ostatnia informacja rozwiązała mój problem. Usunąłem projekt, zainstalowałem integrację dla WTP i ponownie zaimportowałem projekt. Jedynym szczegółem było to, że musiałem wyłączyć wtyczkę Mavena, zbudować projekt w terminalu, a następnie włączyć ponownie wtyczkę. Teraz wszystko działa sprawnie. Jedna myśl, wydaje mi się, że Eclipse naprawdę pozostaje w tyle za wsparciem NetBeans on Maven. Czuję się bardziej produktywny w Eclipse, ale nie mogę pozwolić sobie na stracenie czasu na takie rzeczy w moim miejscu pracy. Myślę, że obraz Eclipse jest nadszarpnięty obecnym stanem wtyczek Mavena. –

9

I miał ten sam objaw z inną przyczyną. Musiałem edytować mój plik .classpath. Wpis 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> 

... Brakowało tu widocznego tu znacznika atrybutów. Po dodaniu tagu atrybuty problem zniknął. Jestem bardzo ciekawy, jak to skonfigurować w uku Zaćmienie.

+0

tak ... że ostatecznie zmieniłem komunikat o błędzie, więc coś związanego z aplikacją ... Myślę, że to był ruch w dobrym kierunku – Newtopian

+1

ah dziękuję to działało dla mnie, właśnie dodałem i jego ok teraz – tomasb

1

Od czasu do czasu, twarz z tym samym problemem.

Z jakiegoś dziwnego powodu, ten problem może być ustalona w ten sposób

1) prawym przyciskiem myszy na Maven Project -> Wyłącz Maven Zależności

2) kliknij prawym przyciskiem myszy na Maven Project -> Włącz Maven Zależności

+1

Nie mam takich opcji w Eclipse 3.7 .2, czy miałeś na myśli "Disable Maven Nature"? – Betlista