Maven 忽略@WebServlet 注释
我有一个动态 Web 项目,其中有一些 @WebServlet 注释,所有这些都运行良好。此后,我将 Dynamic Web 项目切换为 Maven Web 项目。这样做之后,我无法通过 @WebServlet 注释中定义的内容访问任何 servlet。我还应该注意到,我的一些 servlet 是来自其他 Maven 项目的覆盖。我现在必须在 web.xml 文件中定义我的 servlet 映射吗?
谢谢
I had a Dynamic Web project which had a few @WebServlet annotations, all of which worked fine. I have since switched my Dynamic Web project to a Maven web project. Since doing so, I can't access any of my servlets by what I defined in my @WebServlet annotations. I should also note that some of my servlets are overlay from other Maven projects. Do I have to now define my servlet mappings in the web.xml file?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
抛开 Maven 的故事不谈,
@WebServlet
注释是在 Servlet 3.0 中引入的。如果它们未初始化,则仅意味着 Web 应用程序描述符(web.xml
)未声明为符合 Servlet 3.0,或者目标容器不支持 Servlet 3.0。您需要验证您的
web.xml
是否符合 Servlet 3.0。即,
根声明必须匹配:The Maven story aside, the
@WebServlet
annotation was introduced in Servlet 3.0. If they are not initialized, then it simply means that either the web application descriptor (theweb.xml
) is not declared conform Servlet 3.0 or that the target container does not support Servlet 3.0.You need to verify if your
web.xml
conforms Servlet 3.0. I.e., the<web-app>
root declaration must match that: