我对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。请帮忙。
答案 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 - 但这不会导致失败。