2017-05-24 1 views
0

Ich habe bestehende Web-Projekt in maven umgewandelt, Technologien verwendet werden: Struts 2, Hibernate. Ein Zuhörer erstreckt javax.servlet.ServletContextListener, die einen Eintrag in web.xml hat wie folgt:java.lang.ClassNotFoundException in Maven-Projekt, beim Versuch, Listener von web.xml zu laden

<listener> 
    <listener-class>com.tcs.weserv.util.Listener</listener-class> 
    </listener> 

Maven Projekt baut erfolgreich, aber wenn ich versuche, Server zu starten, werfen Sie es eine Ausnahme:

java.lang.ClassNotFoundException: package.util.Listener 

Alle Abhängigkeiten sind in pom.xml richtig definiert, Hörer ist an einem bestimmten Ort verfügbar, noch wirft es ClassNotFoundException.

+0

verfassen stacktrace() –

+0

java.lang.ClassNotFoundException: com.tcs.weserv.util.Listener \t bei org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1714) \t bei org. apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1559) \t bei org.apache.catalina.core.DefaultInstanceManager.loadClass (DefaultInstanceManager.java:532) –

+0

Beschreiben Sie die Schritte, die Sie zum Konvertieren Ihres Projekts befolgten. Bitte fügen Sie das ' ...

Antwort

0

Dies ist ein bekannter Listener. Es kann kein Jar mit diesem Listener gefunden werden. Wenn Sie wissen, wie Sie jar mithilfe eines Zip-Programms oder einer JAR-Programmdatei erstellen, können Sie die Klasse com.tcs.weserv.util.Listener.class in die JAR-Datei kopieren, wobei die Ordnerstruktur erhalten bleibt, die wichtig ist, um die entsprechende Klasse zu finden.

+0

dieser Listener ist in meinem Projekt selbst definiert. Bevor das Projekt in Maven umgewandelt wurde, funktionierte es gut. –

+0

Wenn es im Projekt ist, warum es es nicht finden kann, sagt n ClassNotFoundExceprtion. –

+0

die Datei sollte auf Klassenpfad und der Server sollte in der Lage sein, es zu laden –

1

Vielen Dank für Ihre wertvollen Kommentare. Es half, das Problem zu beheben. Das eigentliche Problem ist, Maven Project Struktur war falsch. Wenn ich ein Maven-Projekt durch Auswählen von Archtype als Webanwendung erstellt habe, enthält die Projektstruktur nur src/main/resources. Da ich neu zu Maven bin, dachte ich, das ist tatsächliche Projektstruktur, und ich kopierte alle Ressourcen sowie Java-Dateien in diesen Ordner. Als Ergebnis konnte das Projekt fehlerfrei erstellt werden, aber während es auf dem Server bereitgestellt wird, wird ClassNotFoundException angezeigt.

Verwandte Themen