2010-11-23 2 views
1

Ich bin ziemlich neu bei der Bereitstellung von tomcat6-Anwendungen. Ich versuche mein Helloworld-Severlet auf tomcat6 zu installieren. Aber whenrver ich Servlet-URL als http://192.168.2.10:8080/hello/HelloWorldExample2 verwenden, erhalte ich folgende Fehlermeldung:Servlet auf tomcat6 auf ununtu lucid bereitstellen 10.04

HTTP-Status 404 -/hallo/HelloWorldExample2

Art Statusbericht

Nachricht/hallo/HelloWorldExample2

Beschreibung der angeforderten Ressource (/ Hallo/HelloWorldExample2) ist nicht verfügbar.

Ich habe mein Servlet in das Verzeichnis/var/lib/tomcat6/webapps kopiert. Hier ist der Inhalt meiner webapp Verzeichnis

ls -lR hallo/*
hallo/WEB-INF:
insgesamt 8
drwxr-xr-x 2 root root 4096 2010-11-23 17.07 Klassen
-RW--r - r-- 1 root root 658 2010-11-23 17.41 web.xml

hallo/WEB-INF/Klassen:
insgesamt 8
-RW--r-- r - 1 Wurzelwurzel 1725 2010-11-23 17:07 HelloWorldExample2.class
-rw-r - r-- 1 Wurzelwurzel 2532 2010-11-23 1 07.06 HelloWorldExample2.java

Hier sind die Inhalte meiner web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
<display-name>HelloWorldExample2</display-name> 
<servlet> 
<servlet-name>HelloWorldExample2</servlet-name> 
<servlet-class></servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>HelloWorldExample2</servlet-name> 
<url-pattern>/hello</url-pattern> 
</servlet-mapping> 
</web-app> 

Ich bin nicht sicher, warum ich nicht in der Lage bin Servlet zu laden. Bitte helfen Sie.

Antwort

2

Ihre web.xml ist falsch. Es fehlt die <servlet-class>, die der vollständige Name der Klasse einschließlich Paket sein sollte. Es scheint HelloWorldExample2 von Ihrer Verzeichnisstruktur zu sein.

und Sie werden mit dem url-pattern/hallo, das bedeutet, dass Sie mit der URL im Browser als versuchen sollten:

http://192.168.2.10:8080/hello/hello

dh das Format

http://<server:port>/<context-root>/<url-pattern> 

Hier ist die <context-root> ist der Name von Ihrem webapphello

und der <url-pattern> ist, was Sie in web.xml für dieses Servlet angegeben haben.

Wenn Sie für den Zugriff als http://192.168.2.10:8080/hello/HelloWorldExample2, dann die <url-pattern> für ändern die servlet-mapping zu/HelloWorldExample2

Auch die display-name in web.xml sollte die Webapp übereinstimmen (hallo) und nicht das Servlet - aber das wird nicht den Fehler verursachen.

+0

Vielen Dank! Es funktionierte! :) – cppdev