
This Tutorial is also available in English here
Update 26.02.2007: Obwohl die Grundlagen dieses Artikels immer noch gelten und richtig sind, gibt es mittlerweile einige Entwicklungen an der Eclipse Platform die es sich lohnt anzuschauen. Insbesondere die Eclipse Web Tools Platform. Ich habe zu diesem Zweck einen Screencast erstellt der eine Einführung in das Entwickeln mit WTP gibt. Ihr findet ihn in diesem Artikel.
Ich kenne einige erfahrene Java Entwickler, die bereits daran gescheitert sind ein eigenständiges Servlet Projekt auf Apache Tomcat Basis einzurichten. Entwickler, die komplexeste Neuronale Netze wie im Schlaf entwickeln und die EJB Spezifikation rückwärts beten können, haben hier schon ihre Probleme gehabt. Man kann also mit Recht sagen, daß es nicht selbsterklärend ist ein Servlet auf dem Tomcat Container zur Mitarbeit zu überreden. .WAR Archive deployen an sich kann jeder, aber ganz anders sieht das aus wenn ein
brandneues Projekt in einen eigenen Context gesetzt werden soll und die Verzeichnisstruktur entsprechend der Spezifikation erstellt werden muss et cetera, et cetera, et cetera. Als Neuling muss man sich also erst Recht nicht schämen, wenn man Anfangsproblemchen mit Servlets hat.
Um diese Anfangsschwierigkeit zu mildern habe ich dieses Tutorial geschrieben.
Dabei ist es eigentlich höllisch einfach so ein Servlet zum laufen zu bringen – vorausgesetzt man kann bei jemandem Nachfragen, der bereits die hohe Kunst der Tomcat Administration beherrscht. Ich kannte niemanden, der das konnte und habe ewig lange Zeit damit verbracht jeden Fehler den ein Anfänger begehen kann zu begehen. Daher weiß ich wovon Ich spreche wenn ich sage, die Konfiguration von Tomcat ist ohne Unterstützung einer kundigen Person, selbst unter Zuhilfenahme von Google alles andere als trivial.
In diesem Tutorial werde ich versuchen so detailliert wie möglich zu erklären wie man step-by-step vorgeht um ein simples “Hello World†Servlet unter Tomcat 4 zum laufen zu bekommen. Für das Tutorial verwende ich Eclipse und Eclipse Spezifische Plugins. Ich hoffe dennoch, daß man sich aus den Darstellungen die generelle Vorgehensweise abschauen kann um das gleiche auch für andere Entwicklungsumgebungen zu bewerkstelligen. Es wird hierbei vorausgesetzt, daß die Installation von Eclipse und der Umgang
mit Plugins geläufig sind.
Folgende Software wird also zunächst benötigt:
Der Server
Tomcat zu installieren ist besonders für Windows Benutzer recht einfach, da ein guter Installer alle Konfigurationsarbeit abnimmt. Alles was man noch zu tun hat ist, sich das Admin Passwort und Verzeichnis zu merken in das Tomcat installiert wurde.
Das Plugin
Das Sysdeo Tomcat Plugin ist unser Freund und Helfer. Nachdem es installiert wurde erscheinen prompt folgende Buttons und Menüs in der Bedienleiste von Eclipse.

Die drei Kater bedeuten in der Reihenfolge von Links nach Rechts Start, Stop und Neu starten. Noch funktionieren sie nicht, denn wir müssen zunächst noch einige Einstellungen vornehmen. Hierzu gehen wir in das Menü “Window-> Preferences†dort öffnet sich nun folgender Dialog

Im Menüpunkt Tomcat tragen wir nun ein, welche Version von Tomcat wir benutzen. Zum heutigen Zeitpunkt ist das die 4.1er oder die 5er Version. In das Feld “Tomcat
Home†geben wir das Verzeichnis ein in das Tomcat installiert wurde. Der Pfad zur Konfigurationsdatei server.xml wird nach der Eingabe des
“Tomcat Home†automatisch ergänzt. Eclipse wird fortan für uns diese Konfigurationsdatei verwalten, in der zum Beispiel der <context> einer Applikation gesetzt wird.

Ein Tomcat Server besitzt verschiedene Benutzerrollen. Einen besonderen Benutzer, den “Administratorâ€, haben wir bereits bei der Installation angelegt. Seine Benutzername und sein Passwort finden sich in der Datei tomcat-users.xml. Ein weiterer Benutzer ist der Benutzer “Managerâ€, er ist nach der normalen Installation noch nicht angelegt und muss manuell hinzugefügt werden. Diese Arbeit nimmt uns Eclipse allerdings ab, wenn wir nun die Untermenüs von Punkt Tomcat aufklappen und dort den Punkt “Tomcat Manager App†aufrufen. Hier kann nun ein Benutzername und ein Passwort für den Manager festgelegt werden. Anschließend auf den Button “Add user to tomcat-users.xml†clicken und dir Konfiguration verlassen.
Jetzt können wir zu Probehalber Tomcat starten. Hierzu clicken wir auf den oben genannten Knopf auf dem der Tomcat Kater abgebildet ist. Wenn Tomcat ohne jegliche Stacktraces hochfährt und wir uns jetzt mit dem Browser auf http://localhost:8080/ verbinden können und unten stehende Startseite sehen ist alles in Ordnung.

Hello World
Jetzt beenden wir Tomcat allerdings erstmal wieder. Und widmen uns unserem ersten Servlet. Hierzu erzeugen wir ein neues Projekt im Navigator Fenster

Im Projektfenster wählen wir jetzt Tomcat Projekt aus…

…clicken auf “Next†und benennen unser Projekt.â€HelloWorldâ€

Nach einem click auf “Next†können wir nun angeben unter welcher
URI (Uniform Resource Identifier) wir unsere Anwendung im Browser künftig ansprechen wollen. Dies entspricht dem im Folgenden, dick gedruckten Teil in
unserer Adresse: http://localhost:8080/HelloWorld/hello Wir belassen alles so wie es ist. Daß bedeutet wir lassen Eclipse die
XML Dateien von Tomcat verwalten und legen für unsere Applikation fest, daß sie nicht in einem Unterverzeichnis sondern im Hauptverzeichnis abgerufen werden soll. Es sollte also so aussehen wie auf folgender Darstellung.
Wenn wir nun den Wizard mit “Finish†beenden, so sehen wir das Eclipse uns gleich eine ganze Sammlung an Verzeichnissen angelegt hat. Es sollte wie
folgt aussehen.

Im Verzeichnis WEB-INF/src legen wir nun eine neue Klasse an, die wir HelloServlet nennen. Der Code, für diese Klasse sieht folgendermaßen aus.
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloServlet extends HttpServlet {
public void doGet (HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
PrintWriter out = res.getWriter();
out.println(â€Hello, Brave new World!â€);
out.close();
}
}
Unsere Ansicht sieht also nun so aus.

Vergrössern
Leider ist es damit allerdings noch nicht getan. Zunächst müssen wir noch den web.xml Deskriptor anlegen der u.a. angibt unter welchem Namen wir das Servlet über den Browser ansprechen können. Die Datei
web.xml muss im Verzeichnis WEB-INF angelegt werden ( NICHT IM VERZEICHNIS WEB-INF/src !!!). Für
unsere Anwendung sollte sie folgende Einträge enthalten.
<!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>hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
Hierzu ist zunächst eine kleine Erklärung notwendig. Der Doctype tag gibt an wo sich die Überprüfungsregeln zu unserem xml Dokument finden. So kann man sicher gehen, daß sich keine falschen Parameterkonstellationen einschleichen. Der Haupt Tag <web-app> enthält alle sonstigen Einstellungen. Im Tag Servlet wird vor allem der Name (<servlet-name>) mit dem das Servlet innerhalb des XML Dokuments fortan benannt wird, mit der Klasse (<servlet-class>) verknüpft. Im Tag <servlet-mapping> geht es darum dem Server mitzuteilen welchen Dokumentnamen unser Servlet bekommen soll, wenn man es schließlich über die Browserzeile aufruft. Wichtig ist hierbei, daß man die Reihenfolge in der die Tags geschrieben sind beachtet. Tomcat achtet penibel genau, daß die Reihenfolge eingehalten wird. So muß <servlet> immer vor dem <servlet-mapping> definiert worden sein, und <servlet-name> muss in <servlet-mapping> vor <url-pattern> stehen. Wenn wir jetzt alle Schritte richtig augeführt haben, können wir endlich Tomcat starten. Unsere Umgebung sollte nun folgendermaßen aussehen.

Vergrössern
Wenn wir jetzt die Kombination aus der URI und dem <servlet-mapping> in der Addresszeile des Browsers eingeben, also in unserem Fall die Adressehttp://localhost:8080/HelloWorld/hello sollten wir nun endlich die Ausgabe unseres Servlets sehen können. Hurrah!
Wer unter Tomcat auch JSPs verwenden will, der kann einfach folgende Zeilen zur web.xml datei hinzufügen und anschließend die JSP Dateien im Hauptverzeichnis des eclipse projektes ablegen.
<servlet>
<servlet-name>jspAssign</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>WARNING</param-value>
</init-param>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jspAssign</servlet-name>
<url-pattern>/*.jsp</url-pattern>
</servlet-mapping>
Die weitere Entwicklung von Servlets unter Eclipse ist übrigens sehr angenehm. Die meisten einfachen Codeänderungen, werden beim speichern in den Servlet Container übernommen, so daß man nicht jedes Mal den Server neu starten oder ein neues Deployment anfangen muss. Viel Spaß mit der weiteren Entwicklung.











Sehr nützliches Tutorial, Danke !
Sehr nützliches Tutorial, Danke !
Kleine Berichtigung: Die in web.xml angegebene DTD http://java.sun.com/j2ee/dtds/web-app_2_3.dtd
ist von Sun neuerdings nach http://java.sun.com/dtd/web-app_2_3.dtd verschoben worden, man bekommt mit der alten URL nur eine HTML Benachrichtigung geschickt, die dann dazu führt, dass Tomcat die Arbeit verweigert, weil es die web.xml nicht parsen kann.
Danke für den Hinweis Jan,
Danke für den Hinweis Jan, ich habe die entsprechende Stelle ersetzt.
Hi, schoenes Tutorial
Allerdings hat
Hi, schoenes Tutorial
Allerdings hat es bei mir (Gentoo-Linux/Eclipse 3M9/TomCat 5.0.18) nicht auf Anhieb geklappt. Kann es sein, dass man die HelloServlet-Klasse in ein package legen muss? Nachdem ich das naemlich gemacht habe hat es einwandfrei getan…
Viele Gruesse Micha
Solche Tutorials braucht das Land!
Solche Tutorials braucht das Land!
Zu erwaehnen ist, dass bei mir die 3 Tomcat Symbole ausgebelendet waren und ich Tomcat daher traditionel starten musste. Bis auf’s Debugging funtionierte das auch gut aber fuer’s Debugging muss man Tomcat via Eclipse starten, also auf den Tomcat-Symbol-Button klicken. Den kann man einblenden, indem man rechts in die Bedienleiste klickt und “customize Perspective…” waehlt. Dann unter “other” den Pukt “Tomcat” ankreuzen.
You ROCK! Thanks a billion
You ROCK! Thanks a billion
Ich kann mich den bisherigen
Ich kann mich den bisherigen Kommentaren nur anschlienen. Sehr gut geschriebenes TUT, und eben nachvollziehbar
Bitte weiter so
Hallo,
erstmat ein Lob für das
Hallo,
erstmat ein Lob für das gute Tutorial,
ich habe jedoch ein Problem mit den jsp files.
Wenn ich den 2. Eintrag in die web.xml einfüge, dann
wird sogar das normale Servlet nicht mehr erkannt, geschweige denn die jsp compiliert.
Ich bitte nochmals um Hilfe!
(Habe als Lösung die tools.jar nach TOMCAT_HOME\common\lib kopiert, aber mir der Lösung bin ich nicht zufrieden, da dies ja nur eine Notlösung ist)
Danke mfg
Manfred
Eine klare einfache Anleitung. Ich
Eine klare einfache Anleitung. Ich habe jetzt schon wochenlang herumprobiert. Vielen Dank:-)
Markus
Ich bin ja äusserst erfreut
Ich bin ja äusserst erfreut über dieses gelungene Tut. Leider findet mein localhost die Applikation nicht:
________________________________________________
description The requested resource (/HelloWorld/hello) is not available.
________________________________________________
Daher eine Frage zur web.xml.
Muss die angelegt werden oder kann eine bestehende verwendet werden. Welche muss ich nehmen. Ich habe verschiedene web.xml, die durch die Installation angelegt wurden.
Danke, Gruss Mario
Gute Einführung. Danke.
Gute Einführung. Danke.
Gute Einfuehung, vielen Danke.
Hat
Gute Einfuehung, vielen Danke.
Hat mir sehr weitergeholfen.
Nun kanns losgehen!
Grusz aus Berlin, Thomas
danke danke
Danke für die gute Erklärung…. hat mir Tag gerettet…
http://www.egocrew.de
Vielen Dank
Endlich mal ein hilfreiches Tutorial über das Erstellen von Servlets unter der Verwendung von Tomcat, vielen Dank!!
Detail – do not forget !!!
You need also to click on Project -> Tomcat Project -> Kontext in Tomcat aktualisieren !!!!!!
gelöst
Hat sich erledigt,
habe einfach Eclipse 3.1 stream version genommen
argh
Oh mein Gott,
ich bin der einzige ders nicht packt
Also ich habe Eclipse 3.0 installiert, Tomcat 5. irgendwas vorher schon.. Jetzt kopiere ich das Eclipse Tomcat Plugin in den /eclipse/plugins/ folder aber ich finde nirgends die Tomcatleiste, noch kann ich sie unter Customize Perspective irgendwo aktivieren, nirgends auch nur die Spur von Tomcat..
nochmal: eclips/plugins/com.sysdeo.eclipse.tomcat_3.0.0/ <- das ganze ding da rein kopiert, richtig?
Kann es sein, dass ich lieber Tomcat 4.x benutzen sollte?
Tut mir sehr leid fürs nachhaken
Vielen Dank,
Marius
TAUSEND DANK
habe andere tutorials versucht -> nur dieses hat sofort erfolge gebracht!
danke
Respekt!
Bester Mann! Lange leben!
Don Quarstillo
sehr schön
n8
vielen dank – war am verzweifeln – genau was ich brauchte – kann endlich schlafen
Hallo,
mit den eclipse plu
Hallo,
mit den eclipse plug-ins habe ich auch riesige Probleme gehabt. Ich habe beim googeln herausgefunden, dass bei fat32-systemen eine zeile in die datei “config.ini” eingefuegt werden muss. Die Zeile lautet:
osgi.checkConfiguration=true
bei mir war das so, dass es nach dem Hinzufuegen überhaupt keine Probleme mit der Erkennung der plug-ins(hier halt tomcat) mehr gab. Ich wollte dieses hier nur posten, damit andere die sich damit rumaergern vielleicht davon profitieren;)
Ansonsten bleibt noch zu sagen, dass das Tut echt schoen einfach gehalten ist und auch alles funzt.
bis denn leutz
Sehr sehr schön!Danke!
Sehr sehr schön!
Danke!
activation o sysdeo plugin
with ec 3.1 Tom 5.5 jvm 5.x and FAT 32
danke das wars – hätt schon ast meine ganze installation zerlegt !
THX
Hey tausend Dank, viele viele Probleme weniger durch dieses geniale Tutorial
Super tutorial eigentlich;
Super tutorial eigentlich; mich interessiert leider nur, wie ich den tomcat in den apache einbinden kann. Wennst mal wieder Zeit hast …
weiter so.
Hallo!
Geile Einführung. Habe dank deiner
Hallo!
Geile Einführung. Habe dank deiner Hilfe mein erstes Servlet geschrieben. Vielen Dank!
Aber vielleicht noch eine Anregung: So eine kleine Liste mit Verweisen zu weiterführenden guten Dokumenten im Web oder Büchern zu dem Thema wäre klasse.
Tschö, Christian, der wo sich bedanken tut
Danke für die Einführung,
ist
Danke für die Einführung,
ist sehr gut geschrieben! Leider scheitere ich schon bei der Installation des Plug-Ins…
Habe ich es richtig verstanden, dass man den Eclipse entzippen muss, das Plug-in in das Plug-In Verzeichnis entzippen und nachher im eclipse einbinden??
vielen dank für feedback und tutorial
Danke! Genau das, was ich
Danke! Genau das, was ich mir die letzten
200 Sternschnuppen gewünscht hatte.
TOP Einführung…
Vielleicht sollte noch
TOP Einführung…
Vielleicht sollte noch erwähnt werden das
man die HelloServlet.jav Klasse compilieren soll.
Ansonsten sehr schön..
Hi, hast mir das Leben
Hi, hast mir das Leben geretet. Danke schoen. Falls du gute Tutorials zum Weiter entwicklung hast bitte mailen.
Agnes
Sehr gut und verständlich. Wenn
Sehr gut und verständlich. Wenn nur alle Tutorials so schön wären …
Hallo,
vielen dank für diese
Hallo,
vielen dank für diese SUPER Einführung, sie hat mir so eben sehr viel weiter geholfen! Werde Dich lobend in meiner Diplomarbeit erwähnen.
Grun Hüso
hallo!
wirklich tolltes tutorial. hab aber
hallo!
wirklich tolltes tutorial. hab aber noch ne frage: falls man ein html-formular hat, in welchem verzeichnis mun das stehen damit es aufgerufen werden kann (ich mein im workspace/projekt verzeichnis von eclipse)?
danke
Vielen Dank für die gelungene
Vielen Dank für die gelungene Einführung. Hatte zwar schon mal mit Tomcat rumgespielt, da ich aber gerade meine ersten Gehversuche mit Eclipse mache, hat mir das Tutorial sehr weitergeholfen.
Ich danke dir Alter, du
Ich danke dir Alter, du hast mir echt das Leben gerettet!!!!!!
Das war wichtig! eine saugeile seite
ABSOLUT FABELHAFT!!!!
ich hab mir einige
ABSOLUT FABELHAFT!!!!
ich hab mir einige tutorials zu diesem thema angesehen und versucht ihre beispiele usw .. auszuführen…
das einzige ergebnis war – stundenlanges sinnloses rumprobieren mit 10000 flüchen
Danke vielmals ….!
Vielen Dank für die Einführung.
Vielen Dank für die Einführung. Endlich mal ein Tutorial, dass auch läuft! Juhui jetzt gehts entlch los. Schöner Tag noch
Hallo
Ich verstehe die Bedetung
Hallo
Ich verstehe die Bedetung des WEB.XML Files nicht.
1. Habe ein Projekt mit dem Namen Tom
2. Meine Klasse heint ServletTest
Was bedeutet der Tag
Tom
ServletTest
Tom
/Tom
Grun
R. Markham
Super Tutorial – 5 Minuten
Super Tutorial – 5 Minuten und mein Tomcat 4.1 inkl. HelloWorld-Servlet läuft – ohne langes Suchen oder riesige Doks zu lesen.
Hmmmmm interesting !!!
Hmmmmm interesting !!!
Endlich mal ein gutes Tutorial.
Endlich mal ein gutes Tutorial.
Was ist besser: Tomcat als Stand Allone zu betreiben oder einen Apache Server mit Tomcat Container zu nutzen.
Was gibt es da für Vor- bzw. Nachteile?
thx for help
MfG Maik
Naja, wenn Du meinst das
Naja, wenn Du meinst das Du den apache httpd und Tomcat zusammen laufen lassen willst…
Dadurch hättest Du den Vorteil, dan Du statische Seiten schneller und stabiler ausliefern kannst als nur mit Tomcat. Tomcat sollte eigentlich immer nur dann eingesetzt werden, wenn auch wirklich Java Fähigkeiten vonnöten sind.
Der httpd bietet für statischen content weit mehr Möglichkeiten (ganz zu schweigen von den scripting Möglichkeiten die durch seinen Einsatz erschlossen werden).
Top tut
obwohl ich Tomcat 6 nutze hat alles einwandfrei funktioniert.
Prima geklappt, super! Danke!
Vielen Dank!
Ein weiterer “complete fool” wird nicht dumm sterben!
bogus
Hey schöne doku.
Aber könntest du noch etwas zu den JSP-Dateien sagen.
Hab versucht eine anzulegen aber das will irgendwie nicht so wie ich.
Das wäre echt super danke.
schöne doku. DANKE
Sehr schönes Tutorial! Kleiner Korrekturvorschlag: Der Link zum Eclipse-Plugin ist nicht mehr aktuell. Die neue scheint zu sein:
http://www.eclipsetotale.com/tomcatPlugin.html