2011-09-08 93 views
3

我有一个动态Web项目,它有一些@WebServlet注释,所有这些工作都很好。自从我将Dynamic Web项目切换到Maven Web项目后,既然如此,我无法通过我在@WebServlet注释中定义的内容访问我的任何servlet。我还应该注意到,我的一些servlet覆盖了其他Maven项目。我必须现在在web.xml文件中定义我的servlet映射吗?Maven忽略@WebServlet注释

感谢

回答

3

Maven的故事之外,在@WebServlet注释Servlet 3.0中引入。如果它们没有被初始化,那么它只是意味着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"> 
+0

的Maven不喜欢这种语法的web.xml文件.... – Ayyoudy

+1

如果你在描述该问题更具体这将有助于。我不能立即飞过/走过来,亲自到你身边窥视你的环境,找出你得到的错误信息以及发生的情况。 – BalusC

+0

这是在我的 .... chowing ... ...如果我删除描述标签,它喜欢它就好了。我认为这可能是3.0的DTD的一部分。除了XML中的语法不正确之外,没有任何错误消息提供给您。此外,这不是一个错误的maven,我认为这只是标准的XML被检查agaisnt提供的架构。感谢您的帮助,将标记为已解决。 – Ayyoudy