Разверните сервлет на tomcat6 в ununtu lucid 10.04 - PullRequest
1 голос
/ 23 ноября 2010

Я довольно новичок в развертывании приложений на tomcat6. Я пытаюсь развернуть свой helloworld severlet на tomcat6. Но всякий раз, когда я использую URL сервлета как http://192.168.2.10:8080/hello/HelloWorldExample2, я получаю следующую ошибку:

HTTP-статус 404 - / hello / HelloWorldExample2

тип Отчет о состоянии

message / hello / HelloWorldExample2

описание Запрашиваемый ресурс (/ hello / HelloWorldExample2) недоступен.

Я скопировал свой сервлет в каталог / var / lib / tomcat6 / webapps. Вот содержимое моего каталога веб-приложений

ls -lR привет / *
привет / WEB-INF:
всего 8
drwxr-xr-x 2 root root 4096 2010-11-23 17:07 классы
-rw-r - r-- 1 корневой root 658 2010-11-23 17:41 web.xml

привет / WEB-INF / классы:
всего 8
-rw-r - r-- 1 корневой корень 1725 2010-11-23 17:07 HelloWorldExample2.class
-rw-r - r-- 1 корневой корень 2532 2010-11-23 17:06 HelloWorldExample2.java

Вот содержимое моего 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>  

Я не уверен, почему я не могу загрузить сервлет. Пожалуйста, помогите.

1 Ответ

2 голосов
/ 23 ноября 2010

Ваш web.xml неверен. В нем отсутствует <servlet-class>, которое должно быть полным именем класса, включая пакет. Кажется, это HelloWorldExample2 из вашей структуры каталогов.

и вы используете url-pattern / hello, что означает, что вы должны попробовать использовать URL-адрес в браузере как:

http://192.168.2.10:8080/hello/hello

т.е.. формат

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

Здесь <context-root> - это имя вашего webapp hello

и <url-pattern> - это то, что вы указали в web.xml для этого сервлета.

Если вы хотите получить доступ к нему как http://192.168.2.10:8080/hello/HelloWorldExample2, то измените <url-pattern> для servlet-mapping на / HelloWorldExample2

Кроме того, display-name в web.xml должен соответствовать webapp (привет), а не сервлету - но это не приведет к сбою.

...