我正在学习servlet并遵循this教程(我按照步骤进行操作,但我将项目命名为“SampleServlet”而不是“de.vogella.wtp.filecounter”)。当我启动服务器时(步骤5.4),我得到404页面错误:
HTTP Status 404 - /SampleServlet/servlet/de.vogella.wtp.filecounter.servlets.FileCounter
type Status report
message /SampleServlet/servlet/de.vogella.wtp.filecounter.servlets.FileCounter
description The requested resource (/SampleServlet/servlet/de.vogella.wtp.filecounter.servlets.FileCounter) is not available.
从哪里开始调试?服务器启动时,控制台中有几个“INFO”,一个警告:
29.08.2011 21:03:44 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SampleServlet' did not find a matching property.
我是否需要更改任何偏好?
答案 0 :(得分:8)
本教程建议您通过http://localhost:8080/de.vogella.wtp.filecounter/FileCounter调用它。项目名称默认为您已更改为de.vogella.wtp.filecounter
的上下文名称SampleServlet
,因此您需要通过http://localhost:8080/SampleServlet/FileCounter调用servlet。
关于SetPropertiesRule
警告,请忽略它,这是正常的。 Eclipse只是向Tomcat的<Context>
元素添加了一个额外的属性,以便能够将已部署的webapp与特定项目相关联。 Tomcat只是抽搐,因为它不会将其识别为预定义的<Context>
属性之一。然而,它试图帮助最终用户实际上输入错误的情况等等。只是忽略它。导出webapp并将其部署到真实的生产服务器上时,您将看不到它。
答案 1 :(得分:5)
好的,根据你的web.xml,你似乎错过了一个servlet定义和一个servlet-mapping。我不知道为什么这不是由你的ide产生的。它应该是这样的:
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>your.package.SampleServlet</servlet-class> <!-- The full qualified package path to your Servlet class -->
</servlet>
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/mysample</url-pattern>
</servlet-mapping>
在servlet-mapping
元素中,您只需将任何网址映射到上面定义的servlet。因此,如果您现在调用http://yourserver:8080/projectname/mysample Servlet,将调用your.package.SampleServlet。
我希望有所帮助。
答案 2 :(得分:0)
将FileCounter添加为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>de.vogella.wtp.filecounter</display-name>
<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>FirstJSP.jsp</welcome-file> -->
<welcome-file>FileCounter</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>FileCounter</display-name>
<servlet-name>FileCounter</servlet-name>
<servlet-class>de.vogella.wtp.filecounter.servlets.FileCounter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileCounter</servlet-name>
<url-pattern>/FileCounter</url-pattern>
</servlet-mapping>
</web-app>