Wo lege ich ein servlet jar-Datei im Tomcat 6?
Ich habe ein servlet in eine jar-Datei, die ich bereitstellen möchten, auf meine Tomcat-6-Instanz. Ich habe die folgenden Dinge:
- Hinzugefügt servlet Deklaration in mein root web.xml
- Hinzugefügt, ein servlet-mapping in die Wurzel web.xml
- meine jar-Datei in /tomcat/lib
- re-startete mein server
Ich erhalte die folgende Fehlermeldung, wenn ich direkt an mein servlet
javax.servlet.ServletException: Wrapper cannot find servlet class com.mypackage.myServlet or a class it depends on
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)
root cause
java.lang.ClassNotFoundException: com.mypackage.myServlet
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)
Sagt mir, dass mein web.xml ist korrekt konfiguriert und ich bin erfolgreich auf die richtigen URL-Muster. Also die Frage ist... wo setze ich ein servlet jar-Datei im Tomcat 6, so wird es abgeholt, in den CLASSPATH?
TIA
- etwas positives an der Diskussion hinzufügen? Wo haben Sie Ihre Antwort gehen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl dies nicht der üblichen Praxis, sollte es funktionieren. Denn es sollte in der Theorie funktionieren, ich habe es lokal getestet und es funktioniert einwandfrei (Tomcat 6.0.20 und 7.0.5). Wahrscheinlich haben Sie einen Tippfehler in der
<servlet-class>
. Der classname deiner servlet nämlich beginnt mit einem Kleinbuchstaben, das geht Total gegen die Java-Namenskonventionen. Versuchenstatt.
Wenn das nicht beheben, dann packen Sie das GLAS mit einigen ZIP - /RAR-tool und überprüfen, ob die
com/mypackage/MyServlet.class
- Datei vorhanden ist.Wenn die Datei tatsächlich vorhanden ist, dann verwenden Sie wahrscheinlich einige IDE, die nur eine bestimmte Untermenge der Gläser
Tomcat/lib
eine Kopie der Tomcat-gesteuert/verwaltet von der IDE. Versuchen Sie, bereitstellen und ausführen von Tomcat-standalone auf die harte Art und Weise in der Kommando-Konsole.Ihre servlet JAR-Dateien geht in der Nachkriegszeit
lib
Verzeichnis, nicht in den top-level-Tomcatlib
Verzeichnis, d.h.