Unterverzeichnis bei Servlets

Also hattest du Tomcat nicht neu gestartet. Wenn du irgendwas an einem Servlet änderst oder du ein neues hinzufügst, musst du immer Tomcat neu starten.

Ist das die komplette Fehlermeldung?

MFG
 
Hi,

doch, Tomcat hatte ich zwischendurch ständig neu gestartet.

Die ganze Fehlermeldung (im Browser lautet):

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Unknown Source)

root cause

java.lang.NoClassDefFoundError: servlet/Login (wrong name: Login)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:869)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1322)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.​


Vorher hatte ich die Servlet-Dateien nur in WEB-INF/src liegen. Um das ganze besser zu strukturieren, habe ich sie alle in den Ordner servlet geschoben, und danach einen Ordner servlet unter classes, wo ich die *.java Dateien reingeschoben habe.

Das ist jetzt momentan aktuellster Stand...

MfG, Ozzy
 
Also die Fehlermeldung sagt aus, dass er die Klasse nicht findet, also stimmt irgendwas an deiner Struktur.

also das ganze müsste so aussehen:

%TOMCAT_HOME%/webapps/deinProjekt/WEB-INF/classes/servlet/Login

oder?
 
Das ist das Problem an Ferndiagnosen.

Wäre es möglich, dass du mir dein Projekt mal zukommen lässt? Nur wenn du willst.
Dann könnte ich hier mal schauen. Die Sourcen brauche ich nicht, vielleicht nur von der Login.class.

MFG

zEriX
 
Fällt mir auch nur noch Groß-Klein-Schreibung ein, bzw. mal beim Tomcat das Projektverzeichnis-Verzeichnis löschen, neu hin kopieren und neu starten.

P.S.: Ich hatte mal das Problem, den falschen Tomcat (von meinen 4 Tomcats) erwischt zu haben. Ich hab' mich dumm und dusselig gesucht! Bitte prüfe mal den Variableninhalt von "TOMCAT_HOME".
 
Hi,

endlich habe ich es geschaft Wie? Neues Projekt angelegt, alle java-Dateien in das neue Projekt kopiert, und aus dem eigentlichen gelöscht, inklusive Pfad. Danach alle .class-Dateien gelöscht, auch inklusive Pfad.
Eclipse geschlossen, und dann wieder geöffnet, anschließend wieder alle Dateien genauso, wie sie vorher waren in die neu erstellten Verzeichnisse kopiert, und siehe da: geht doch

Also noch einmal vielen, vielen Dank für Eure Hilfe

MfG, Ozzy
 
Zurück