Maven忽略@WebServlet注释

时间:2011-09-08 15:36:56

标签: servlets maven mapping

我有一个动态Web项目,它有一些@WebServlet注释,所有这些都很好。我已经将我的Dynamic Web项目切换到Maven Web项目。由于这样做,我无法通过我在@WebServlet注释中定义的内容访问任何servlet。我还应该注意,我的一些servlet是来自其他Maven项目的叠加。我现在必须在web.xml文件中定义我的servlet映射吗?

由于

1 个答案:

答案 0 :(得分:3)

除了Maven故事之外,Servlet 3.0中引入了@WebServlet注释。如果它们未初始化,那么它只是意味着Web应用程序描述符(web.xml)未声明符合Servlet 3.0或目标容器不支持Servlet 3.0。

您需要验证web.xml是否符合Servlet 3.0。即,<web-app>根声明必须匹配:

<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">