Tomcat 5.5 Problem



  • Ich habe mir unter meinem Mac OS X den Tomcat in der Version 5.5 installiert. Der läuft auch ganz proper. Allerdings habe ich eine kleien Seite im Netz gefunden, die erklärt wie man nun selber ein paar Servlets implementiert. http://developer.apple.com/internet/java/tomcat1.html

    Okay ich hab alles so gemacht wie auf der Seite steht.

    1. Ich habe folgende Verzeichnisse in /usr/local/apache-tomcat-5.5.12/webapps/ angelegt
      mine
      mine/WEB-INF
      mine/WEB-INF/classes
      mine/WEB-INF/lib

    2)Ich habe die Datei Hi.java copy&pasted und kompiliert.

    import java.io.*;
    import java.text.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    /**
     * My test servlet
     *
     * @author Liz Warner
     */
    
    public class Hi extends HttpServlet {
    
        public void doGet(HttpServletRequest request,
                          HttpServletResponse response)
            throws IOException, ServletException
        {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
    
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Hola</title>");
            out.println("</head>");
            out.println("<body bgcolor=\"white\">");
            out.println("<h1> Hi </h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }
    
    1. Ich habe die Datei /usr/local/apache-tomcat-5.5.12/conf/server.xml um folgenden Eintrag erweitert:
    <Context path="/mine" docBase="mine" debug="0" reloadable="true">
      <Logger className="org.apache.catalina.logger.FileLogger"
        prefix="localhost_mine_log." suffix=".txt"
        timestamp="true"/>
      </Context>
    
    1. Im Ordner mine/WEB-INF habe ich dann die Datei web.xml erstellt
    <servlet>
          <servlet-name>Hi</servlet-name>
          <description>
            Testing
          </description>
          <servlet-class>Hi</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>Hi</servlet-name>
            <url-pattern>/Hi</url-pattern>
        </servlet-mapping>
    

    Und es funktioniert einfach nicht, wenn ich http://localhost:8080/Hi eingebe, dann erhalte ich eine Fehlermeldung vom Tomcat. Was läuft hier nicht ? 😕



  • Was kommt den für eine Fehlermeldung?

    Liegt die Datei Hi.class in /WEB-INF/classes?

    Wenn ja, dann lege sie zusätzlich noch in einem Paket ab! Es gibt immer wieder Probleme, wenn Klassen von Webanwendungen sich nicht in einem Paket befinden.

    package paket.irgendwas;
    
    import java.io.*;
    

    Entsprechend musst du die web.xml anpassen.



  • Das Servlet ist nach wie vor nicht abrufbar. Folgendes habe ich gemacht:

    1. Die Datei Hi.java um den Eintrag package hi; erweitert.
    2. die Datei Hi.java in den Ordner mine/WEB-INF/classes/hi verschoben und neu kompiliert.
    3. die web.xml aus mine/WEB-INF so geändert:
    <servlet>
          <servlet-name>Hi</servlet-name>
          <description>
            Testing
          </description>
          <servlet-class>hi.Hi</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>Hi</servlet-name>
            <url-pattern>/Hi</url-pattern>
        </servlet-mapping>
    

    Die Fehlermeldung von Tomcat lautet so:

    HTTP Status 404 - /Hi
    
    type Status report
    
    message /Hi
    
    description The requested resource (/Hi) is not available.
    Apache Tomcat/5.5.12
    


  • Schau noch mal auf die URL:

    http://localhost:8080/Hi

    Da steht der Servlet-Name, jedoch nicht der der Anwendung. Probier's mal so:

    http://localhost:8080/mine/Hi

    Oder starte die Anwendung über den Tomcat-Manager und stelle das Servlet in die welcome-file-list der web.xml.



  • Also http://localhost:8080/mine/Hi geht auch nicht:

    HTTP Status 404 - /mine/Hi
    
    type Status report
    
    message /mine/Hi
    
    description The requested resource (/mine/Hi) is not available.
    Apache Tomcat/5.5.12
    

    Zum letzten Vorschlag mußt Du mir kurz erklären was das jeweils genau ist, Tomcat Manager und Welcome list der web.xml sagt mir nichts. Wo ist denn in meiner web.xml eine Welcome list ?



  • Die Welcome-File-List kann man in der web.xml eintragen. Die dort eingetragenen Ressourcen werden beim Anwendungsstart aufgerufen.

    <welcome-file-list>
        <welcome-file>Hi</welcome-file>
    </welcome-file-list>
    

    Man kann sie unter servlet-mapping eintragen (weitere Infos: http://e-docs.bea.com/wls/docs61/webapp/web_xml.html).

    Den Tomcat-Manager erreichst du einfach unter http://localhost:8080

    Es sollte die Tomcat-Seite erscheinen; unter Administration befindet sich der Manager, in dem man unter Anderem Webanwendungen installieren kann.


Anmelden zum Antworten