首页 > 代码库 > 运用servlet3.0注解报404错误

运用servlet3.0注解报404错误

我的环境是eclipse (查了一下2013EEIDE)+tomcat7.0+Servlet3.0

项目名称:day08BookManageCase
servlet类是new servlet出来的如下代码,大部分代码省略,只留了注解部分。

/**
 * Servlet implementation class FindAllServlet
 */
@WebServlet("/FindAllServlet")
public class FindAllServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
.......

index.html
<body>
 <a href=http://www.mamicode.com/"/day08BookManageCase/FindAllServlet">查询所有书籍
</body>

当通过这个页面访问的时候出现了404错误。

问题解决:

因为控制台中没有任何报错信息,最后只能在网上找,最后问题解决了。

出现上述错误的原因是我在创建项目的时候,没有自动生成web.xml
而是copy了之前的一个web.xml,而在之前的这个web.xml中,并不能通过读取web.xml文件关联注解了的servlet类。
所以最后修改了web.xml标签的属性,问题得到解决。

==========================================================
那么对于上述问题,我看到的错误只是404错误,就是找不到页面,而这样的错误,往往是在控制台中没有任何的异常信息会出现的。
而web程序的启动,必然是要去读取web.xml文件。
所以,当出现这种的错误的时候,我们要去查看以下几点:

1.web.xml 文件是否已经创建了
2.web.xml文件的位置是否对了
3.web.xml文件的配置信息是否是对的
包括:web标签本身的属性信息、标签内部的配置信息。
支持注解的web.xml的标签头如下:
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
最后,还要注意的是软件之间是否相互支持。
比如如你用低版本的eclipse,高版本的tomcat,中期版本的servlet这样就极有可能出现各种问题。所以在配置系统的开发环境的时候
要注意一下,版本之间的兼容性,也可以直接在网上找相应的版本组合。