Tomcat: Servlet mit Packages
-
Hallo Forum,
ich habe mehrere Servlets, die einwandfrei unter Tomcat laufen. Jetzt wollte ich ihnen eine Package-Struktur verpassen und dann lief nichts mehr.Aus der HTML-Datei, die das erste Servlet aufruft, habe ich aus dem Aufruf "/servlet/Login/" => "/servlet/de.mef.test.Login/" gemacht, woraufhin er die Klasse "Login" nicht mehr fand.
In der Konfigurationsdatei vom Tomcat habe ich es hiermit versucht
<Context path="" docBase="/WebServerRoot/de.mef.test" debug="0"/>
was aber auch nicht funktioniert hat.
Kennt sich da jemand aus?
-
Ich würde mal versuchen "/WebServerRoot" in die path-Variable setzen - wissen tu' ichs aber nicht.
-
Klappt leider nicht.
-
Original erstellt von Titus:
**
Aus der HTML-Datei, die das erste Servlet aufruft, habe ich aus dem Aufruf "/servlet/Login/" => "/servlet/de.mef.test.Login/" gemacht, woraufhin er die Klasse "Login" nicht mehr fand.In der Konfigurationsdatei vom Tomcat habe ich es hiermit versucht
<Context path="" docBase="/WebServerRoot/de.mef.test" debug="0"/>
**Hi Titus,
weiß zwar net welche Version von Tomcat du benutzt folgendes gilt zumindest für die 4er.Für jede Anwendung unter Tomcat gibt man ein Context an (server.xml).
z.B.<Context path="/myweb" docBase="myweb" debug="0" reloadable="true"/>
in obigen Fall würdes du folgende Verzeichnisstruktur
für dein Servlet anlegentomcat |-webapps |-myweb |-WEB-INF |-classes |-de |-mef |-test
Alle URLs die nun mit http://localhost:8080/myweb anfangen
werden dieser Applikation zugewiesen.
Das entscheidende nun für dich um deine Servlets aus dem Package
de.mef.test auf 'ner URL zu mappen findet in der Datei web.xml statt
die bei dir unter myweb/WEB-INF angelegt werden muß.Hier ein Beispiel für deine web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name> Login </servlet-name> <servlet-class> de.mef.test.Login </servlet-class> </servlet> <servlet-mapping> <servlet-name>Login</servlet-name> <url-pattern>/Login</url-pattern> </servlet-mapping> </web-app>
Nun wurde de.mef.test.Login auf die URL http://localhost:8080/myweb/Login
gemapped.HINWEIS:
Das einzige was in der web.xml wirklich fest vorgeschrieben ist, ist
das Tag <servlet-class>.
<servlet-name> kannst du frei bestimmen und beim anschließende mapping
mit <servlet-mapping> nimmst du deinen frei bestimmten Servlet-Namen und weißt ihm eine beliebige URL zu.Ein Beispiel wäre auch (web.xml)
<servlet> <servlet-name> MeineMutter </servlet-name> <servlet-class> de.mef.test.Login </servlet-class> </servlet> <servlet-mapping> <servlet-name>MeineMutter</servlet-name> <url-pattern>/DeinVadda/BlaBla</url-pattern> </servlet-mapping>
Wenn du das nun in deiner web.xml einträgst kannst du über die URL http://localhost:8080/myweb/DeinVadda/BlaBla
dein Login-Servlet aufrufenbis dänn, O'Dog
[ Dieser Beitrag wurde am 06.05.2002 um 21:20 Uhr von O'Dog editiert. ]
-
sowas fänd ich gut fürs faq.. das steht mir nämlich auch bevor.. packages unterm tomcat.. bis jetzt hab ich alle immer in einem gemacht.. genau deswegen
-
As you wish ...
-
Vielen Dank O'Dog. Das war sehr ausführlich und wird auch bestimmt klappen.