Announcement

Collapse
No announcement yet.

Tomcat Mapping

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tomcat Mapping

    Hallo!

    Ich weiß schon, was 404 heißt, bin aber nach tagelangem Rumprobieren und Doku lesen am Ende meines Lateins. Alles, was ich machen möchte ist, ein "Hallo Welt"-Servlet auf Tomcat zum Laufen zu bekommen.

    Die Klasse:

    Code:
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    import java.io.*;
    
    
    public class Test extends HttpServlet {
    
    	private static final long serialVersionUID = 1L;
    
    	public void doGet (HttpServletRequest req, HttpServletResponse res)
    		throws ServletException, IOException
    		{
    			PrintWriter out = res.getWriter();
    			out.print("Hi!");
    			out.close();
    		}
    }
    Die web.xml:

    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">
        
      <display-name>Test-Applikations-Test</display-name>
      <description>
        Nur ein einfaches "Hallo Welt!"
      </description>
      
      <servlet>
      	<servlet-name>Test</servlet-name>
      	<servlet-class>Test</servlet-class>
      </servlet>
      
      <servlet-mapping>
      	<servlet-name>Test</servlet-name>
      	<url-pattern>/Test</url-pattern>
      </servlet-mapping>
        
    </web-app>
    Die Context-Datei, die auch gelesen wird, da sie im Tomcat-Manager auftaucht:
    Code:
    <Context path="/Test" reloadable="true" docBase="/media/Daten/eclipse-workspace/Test" />
    Das Verzeichnis stimmt. Ich verwende Eclipse (Linux) mit dem Sysdeo-Plugin. Etwas stutzig macht mich, dass der Manager als Kontext-Pfad den Dateinamen der Kontext-Datei anzeigt, egal was ich sonst angebe (aber ich habe sie auch Test.xml genannt).

    Die mitgelieferten Servlets laufen. Im Traceback steht auch nix (keine Fehlermeldung, kein nix).

    Danke schonmal,
    Tim-Erwin


    PS: Ich versuche das ganze dann über http://localhost:8080/Test aufzurufen
    Zuletzt editiert von Tim-Erwin; 21.05.2007, 21:54. Reason: URL

  • #2
    Hallo Tim-Erwin,

    Die korrekte URL lautet normalerweise http://localhost:8080/webapplication/servlet

    Da Deine web application anscheinend auch Test heißt, probiers mal mit http://localhost:8080/Test/Test

    Gruß,

    Alwin

    Comment


    • #3
      Alwin, was dagegen, wenn ich dich meinen Held nenne? Ich wusste doch, dass es ganz einfach ist. Sonst hätte ich es schon gefunden.

      Gibt es denn eine Möglichkeit, wie ich das Servlet über /Test aufrufen kann?

      Gruß,
      Tim-Erwin

      Comment


      • #4
        Ja, mappe es halt nicht auf /Test sondern auf /

        Code:
        <servlet-mapping>
            <servlet-name>Test</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        Dann wird es das default Servlet der web app. In Deinem Fall müsste dann

        http://localhost:8080/Test

        genügen.

        Comment


        • #5
          Jap, Danke, nu hab ich's wirklich verstanden. Das Mapping findet unterhalb der Applikationspfades statt... pling.

          Comment

          Working...
          X