Servlet中写了注解@WebServlet但访问servlet报404错误

以前一直用的eclipse,web.xml文件自动生成的,没自己改过。

这次web.xml是先创建maven项目再添加web配置时,随便从一个web4.0项目里拷贝来的,然后就出问题了。

Servlet中写了注解@WebServlet("xxxx"),但访问servlet时报404错误。

(一)看了web的确是3.0以上的,没找到问题在哪,看了篇博客解决了:https://www.cnblogs.com/iCheny/p/10976735.html


  • 原web.xml(出问题的)

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0"
             metadata-complete="true">
    </web-app>
    
  • 用Servlet注解的话把metadata-complete改成false

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0"
             metadata-complete="false">
    </web-app>
    


(二)补充:

  • 如果项目名后来修改过了,要查看tomcat部署里的artifact是否和项目同名,不同名部署路径会出错。

    • 不同名:

    • 修改成同名的:

posted @ 2020-05-31 20:50  musecho  阅读(2190)  评论(0编辑  收藏  举报