为什么Eclipse中的预览服务器不会尊重我的@WebServlet注释?

时间:2017-12-28 03:34:06

标签: java eclipse servlets java-annotations

我在我的应用中使用了@WebServlet注释,如下所示:

@WebServlet("/tokenize")
public class TokenizerServlet extends HttpServlet {
   ...
}

这在Eclipse中的“localhost的J2EE预览”中不起作用。对http://localhost:8080/myApp/tokenizer的任何请求都会返回404.当从web.xml映射时,此相同的网址可以正常工作。

但是,当部署应用程序时(在我的情况下为Azure),可以正常工作。所以问题不在代码或配置中,而是与Eclipse中的预览服务器有关。

如何配置预览服务器以尊重我的注释?我到处寻找,似乎没有太多配置可言。我web.xml的根元素如下所示:

<web-app 
  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"
  version="3.0">

在项目的“J2EE Preview”节点下,我有:

enter image description here

更新 -

我从未得到过这方面的解决方案,但我发现在本地运行Tomcat非常容易,我刚刚开始这样做了。我在这里留下这个问题以防其他人有同样的问题,只是因为你知道你并不孤单,也许有人会在某个时候提供答案。

1 个答案:

答案 0 :(得分:0)

在介绍servlet 3.0时,servlet中的注释概念出现了。下面的任何较低版本都不支持注释。我认为在您的IDE中,您使用的是低于3.0的servlet版本。在创建动态Web项目时,可以更改此版本。

enter image description here