Schnellstart mit Tomcat

Home

Diese Beschreibung ist schon älter, lesen Sie besser die Version für Tomcat 8.

Die Installation von Tomcat ist einfach, aber bis das erste Servlet lief, gab es eine grössere Suchaktion in allen möglichen Dokumenten. Um meinen Studenten einen Schnelleinstieg zu ermöglichen, habe ich diese Seite zusammengestellt

Voraussetzungen

Das JDK war vorhanden, und zwar unter c:\program files\java\jdk1.5.0_07. Dieser Pfad ist wichtig, denn er wird immer wieder referenziert. Im Batch-File für Kompilation und Installation des Servlets kommt er ebenfalls vor und muss sehr wahrscheinlich an Ihre Installation angepasst werden.

Tomcat war nicht installiert, der Ablauf wird gleich beschrieben.

Installation von Tomcat

Die Installation von Tomcat ist wirklich einfach:

Tomcat liegt bei mir unter d:\apache-tomcat-6.0.13, ein Pfad der auch immer wieder auftaucht

Beim ersten Startversuch meckerte Tomcat, dass JAVA_HOME nicht definiert sei. Prüfen Sie deshalb an dieser Stelle, ob diese Umgebungsvariable vernünftig gesetzt ist. Das geht zum Beispiel auf der Kommandozeile mit echo %JAVA_HOME%
Falls die Variable nicht definiert ist, setzen Sie sie auf der Kommandozeile zum Beispiel mit set JAVA_HOME=c:\program files\java\jdk1.5.0_07 (Pfad anpassen !)

Funktionstest von Tomcat

Im Directory d:\apache-tomcat-6.0.13\bin finden Sie startup.bat, der Tomcat startet. Wenn er läuft, starten Sie den Browser und Sie sollten unter der URL http://localhost:8080 die Tomcat-Startseite finden.

Das erste Servlet

Die Servlets sind tadellos dokumentiert, aber für den Schnellstart gebe ich Ihnen eines vor:

/******************************************************************************/
/*                                                                            */
/*                                                    FILE: SchnellStart.java */
/*                                                                            */
/*  Ein einfaches Servlet fuer den Schnellstart                               */
/*  ===========================================                               */
/*                                                                            */
/*  V1.00   18-MAY-2007   Te          http://www.heimetli.ch                  */
/*                                                                            */
/******************************************************************************/

// Servlets sollen immer in einem eigenen Package liegen
package demo ;

// Standard-Package von Java
import java.io.* ;

// Diese beiden sind nicht im JDK zu finden sondern bei Tomcat
import javax.servlet.* ;
import javax.servlet.http.* ;

/**
 * Ein triviales Servlet, nur zur Demonstration
 */
public class SchnellStart extends HttpServlet
{
   /**
    * Wird bei einem Seitenabruf (GET) aufgerufen und erzeugt
    * eine Antwortseite
    * @param request Die Parameter des Aufrufs
    * @param response Nimmt die Antwort des Servlets auf
    */
   public void doGet( HttpServletRequest request, HttpServletResponse response )
        throws IOException, ServletException
   {
      // MIME-Typ der Antwort bestimmen
      response.setContentType("text/html");

      // Writer holen
      PrintWriter out = response.getWriter();

      // HTML-Seite ausgeben
      out.println("<html>");
      out.println("<head>");

      out.println("<title>Test</title>");
      out.println("</head>");
      out.println("<body bgcolor=\"white\">");
      out.println("<h1>Testen ist schön... <br /><span style=\"color:red;\">Fehler suchen noch schöner.. *g*</span></h1>");
      out.println("</body>");
      out.println("</html>");
   }
}

Beim Kompilieren des Servlets gibt es zwei Dinge zu beachten:

Der Befehl für die Kompilation sieht also etwa so aus: (Pfade anpassen !)
"C:\program files\java\jdk1.5.0_06\bin\javac" -classpath .;d:\apache-tomcat-6.0.13\lib\servlet-api.jar demo\SchnellStart.java

Wenn die Kompilation gelingt, muss das Servlet in eine Web-Applikation eingebunden werden

Deployment

Als Webapplikation habe ich ffh angenommen. Das bedeutet, dass unter d:\apache-tomcat-6.0.13\webapps ein Directory namens ffh angelegt werden muss. Der Aufbau der Directorystruktur wird von der Servlet-Spezifikation genau festgeschrieben:

Die Befehle um diese Struktur zu erstellen, sind
mkdir d:\apache-tomcat-6.0.13\webapps\ffh
mkdir d:\apache-tomcat-6.0.13\webapps\ffh\WEB-INF
mkdir d:\apache-tomcat-6.0.13\webapps\ffh\WEB-INF\classes
copy demo\SchnellStart.class d:\apache-tomcat-6.0.13\webapps\ffh\WEB-INF\classes

web.xml

Nun fehlt uns bloss noch ein XML-File mit ein paar Zeilen, bis das Servlet läuft, das web.xml. Den Inhalt dieses Files sehen Sie hier:

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 

 <description>SchnellStart</description>

 <display-name>SchnellStart</display-name>

  <servlet>
   <servlet-name>hopp</servlet-name>
   <servlet-class>demo.SchnellStart</servlet-class>
  </servlet>

  <servlet-mapping>
   <servlet-name>hopp</servlet-name>
   <url-pattern>/hopp</url-pattern>
  </servlet-mapping>

</web-app>

Wie Sie sehen, definieren wir hier, in welchem Class-File Tomcat das Servlet findet und welche URL ihm zugewiesen ist.

Test des Servlets

Surfen Sie auf http://localhost:8080/ffh/hopp, und Sie sollten die vom Servlet erzeugte HTML-Seite sehen.

Sourcen

Da es fast nichts sinnloseres gibt, als Files abzutippen, habe ich Ihnen ein ZIP vorbereitet, in dem Sie die hier gezeigten Files finden. Ebenfalls im ZIP finden Sie einen Batch namens mk.bat, der das Deployment vornimmt. (Wie immer: Pfade anpassen)

Falls es wirklich nicht geht

Wenn es wirklich nicht klappt, dann holen Sie sich dieses war-Archiv und und speichern Sie es im webapps-Directory. Sobald Tomcat es entdeckt, packt er es automatisch aus und installiert die Web-Applikation.

Autor

Autor dieser Seite ist Peter Tellenbach