2012-07-02 5 views
8

Ich versuche gerade, ein Servlet auf meinem lokalen Tomcat mit Eclipse auszuführen.HTTP-Status 404 - auf Eclipse mit Tomcat

Aber ich bekomme diesen Fehler und habe keine Ahnung, was ich anders machen soll.

Ich nahm es tatsächlich hier: http://www.screenr.com/ZyD8

Vielen Dank!

Auch änderte ich die web.xml dazu:

 <?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" 
    version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > 

    <display-name> 
TEST3 
    </display-name> 

    <welcome-file-list> 

     <welcome-file> 
TEST3 
     </welcome-file> 
    </welcome-file-list> 

    <servlet> 

     <servlet-name> 
helloServlet 
     </servlet-name> 

     <servlet-class> 
HelloServlet 
     </servlet-class> 
    </servlet> 

    <servlet-mapping> 

     <servlet-name> 
helloServlet 
     </servlet-name> 

     <url-pattern> 
/hello 
     </url-pattern> 
    </servlet-mapping> 

</web-app> 
+0

Tut Servlet Pakete, wenn ja, dann schreibe voll qualifizierten Klassennamen in web.xml –

+0

es ist in "default package". Aber selbst wenn ich es in einem Paket "test.servlet" und dem put "test.servlet.HelloServlet" als Klassennamen in web.xml erstelle, gibt es den gleichen Fehler – user387184

+0

Überprüfen Sie meine Antwort. –

Antwort

20

ich Ihren Link gesehen haben.

Wann immer Sie ein dynamisches Webprojekt ausführen. Standardmäßig sucht der Container Servlet (in diesem Fall Tomcat) nach Dateien, die in der Welcome-Liste angegeben sind. Überprüfen Sie Ihre web.xml, es sollte Eintrag enthält wie

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

Sie haben keine Datei von einer der oben genannten Liste erstellt. So läuft

http://localhost:8080/TEST2 wird Ihnen 404 Fehler geben.

Eher ausgeführt: http://localhost:8080/TEST2/HelloSerlvet wird das Servlet aufrufen, das Sie erstellt haben.

Bearbeiten: Überprüfen Sie das Projektmenü von Eclipse und vergewissern Sie sich, dass "Automatisch erstellen" aktiviert ist und der Servlet-Container läuft (http://localhost:8080).

Edit 2: Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften, wählen Sie Java Build Path -> Quell-Registerkarte -> Standard-Ausgabeordner ändern. Erstellen /WEB-INF/classes unter /WebContent (default in Eclipse)

+0

siehe meine beigefügte web.xml - wenn ich "http: // localhost: 8080/TEST2/HelloServlvet" eintippe gibt es denselben Fehler. Ich denke, dass die Klasse überhaupt nicht am richtigen Ort eingesetzt wird, aber ich weiß nicht, was ich tun soll? – user387184

+0

Sorry, aber ich habe alles versucht und immer noch nicht funktioniert. Was muss ich als Buildpath oben unter "Quellordner auf Buildpfad" setzen und was sollte ich unter "Default Output FOlder" eintragen? Soll ich das "Ausgabeordner als Quellordner zulassen" aktivieren? – user387184

+0

Bitte sorgfältig lesen. Ich habe erwähnt, einen neuen Ordner zu erstellen. in Edit 2 –

7

Dies basiert auf der Antwort von Hardik Mishra mit einigen Highlights: 1. Wählen Sie im Datei-Explorer (nicht von Eclipse), manuell erstellen, um die „/ WEB-INF/classes "unter/WebContent 2. Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften, wählen Sie Java-Erstellungspfad -> Registerkarte Quelle -> Standardausgabeordner in den Ordner ändern, den Sie oben erstellt haben. 3. Gehen Sie zum Dateiexplorer, nicht aus Eclipse, da der Eclipse "Projekt Explorer" möglicherweise einige Filter enthält, die den Klassenordner nicht anzeigen. Sie sollten die .class-Dateien sehen, die in diesem Verzeichnis kompiliert wurden

Versuchen Sie es erneut zu testen. Wenn es nicht funktioniert, starte Eclipse neu und dann sollte es funktionieren.

4

Ich habe diese Art von Problem seit einiger Zeit gesehen und habe mehrere Lösungen gesehen, die für einige arbeiten und Ruhe immer noch das gleiche Problem.

Eine der einfachen Lösung ist das Durchlaufen der .java/.jsp/etc., Klicken Sie mit der rechten Maustaste und wählen Sie Ausführen von Server-Option.

Ich fand diese Lösung einfach, aber effektive Art zu laufen.

Pfad Java-Ressource-> src-> -> Beispiel.java -> Rechtsklick -> Ausführen als -> auf Server ausführen.

Auch danach können Sie sich einigen Problemen wie Port 8005 nicht stellen. Folgen Sie bitte dem untenstehenden Link, um Ihre aktuelle Apache-Einstellung zu bereinigen und die Einstellung zu ändern.

TOMCAT - HTTP Status 404

Deployment error:Starting of Tomcat failed, the server port 8080 is already in use

Hoffnung dieser Befund war hilfreich.

0

Normalerweise, wenn Sie die Datei web.xml ändern, sollten Sie Tomcat "säubern". Einfach mit der rechten Maustaste auf Tomcat in Eclipse klicken und säubern. Machen Sie dasselbe für das Projekt. Sie können auch Tomcat stoppen, die App von Tomcat entfernen (mit der rechten Maustaste auf die App unter Tomcat klicken und entfernen) und sie dann wieder hinzufügen. Starten Sie Tomcat neu.