在ubuntu lucid 10.04上的tomcat 6上部署servlet

时间:2010-11-23 12:23:57

标签: tomcat servlets tomcat6

我对tomcat6应用程序部署很新。我试图在tomcat6上部署我的helloworld severlet。但是当我使用servlet url作为http://192.168.2.10:8080/hello/HelloWorldExample2时,我收到了以下错误:

HTTP状态404 - / hello / HelloWorldExample2

输入状态报告

message / hello / HelloWorldExample2

description请求的资源(/ hello / HelloWorldExample2)不可用。

我已将servlet复制到/ var / lib / tomcat6 / webapps目录。以下是我的webapp目录的内容

ls -lR你好/ *
你好/ WEB-INF:
共8
drwxr-xr-x 2 root root 4096 2010-11-23 17:07类
-rw-r - r-- 1 root root 658 2010-11-23 17:41 web.xml

您好/ WEB-INF /类:
共8
-rw-r - r-- 1 root root 1725 2010-11-23 17:07 HelloWorldExample2.class
-rw-r - r-- 1 root root 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>  

我不确定为什么我无法加载servlet。请帮忙。

1 个答案:

答案 0 :(得分:2)

您的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中为该servlet指定的内容。

如果您想以http://192.168.2.10:8080/hello/HelloWorldExample2的身份访问它,请将<url-pattern>的{​​{1}}更改为/ HelloWorldExample2

此外,web.xml中的servlet-mapping应该与webapp(hello)匹配,而不是servlet - 但这不会导致失败。