Java Servlet 3.0 API-注册Servlet

Java Servlet 3.0 API-注册Servlet,java,servlets,servlet-3.0,Java,Servlets,Servlet 3.0,我正在Tomcat7.0.37和Eclipse3.7上开发一个示例servlet。我当前的问题是让它运行起来:( 当我调用URL”时http://localhost:8080/{webappname}/Hello“一个窗口变为“状态404-资源不可用”。有什么问题吗 这与大多数Servlet 3.0示例类似:(以下是一些原因: 确保您的Servlet容器支持Servlet 3.0。大多数容器都应该支持 确保您的web.xml版本为3.0。对于web.xml版本

我正在Tomcat7.0.37和Eclipse3.7上开发一个示例servlet。我当前的问题是让它运行起来:(

当我调用URL
”时http://localhost:8080/{webappname}/Hello“
一个窗口变为“状态404-资源不可用”。有什么问题吗


这与大多数Servlet 3.0示例类似:(

以下是一些原因:

  • 确保您的Servlet容器支持Servlet 3.0。大多数容器都应该支持
  • 确保您的web.xml版本为3.0。对于web.xml版本<3.0,可能无法处理批注
  • 确保元数据完整属性为false。如果为true,则可能无法处理批注

创建
{webappname}.war
,将其放入
webapps
目录并重新启动服务器。

问题是您没有将servlet映射到正确的url模式。servlet名称应该映射到url模式。但在您的代码中没有这样做

要正确使用注释,请参见以下内容

@WebServlet( name="AdminServlet", displayName="Admin Servlet", urlPatterns ={"/Hello","*.do"})
public class AdminServlet

我发现了我的问题:我必须删除“super().doGet();”

你确定应用程序已经部署在服务器上并启动了吗?当然……日志文件说了;-)问题是他使用的是Tomcat 7,所以第一个原因已经解决了。所以,一般来说,它可能是接下来的两个原因。我只安装了JDK7@GeorgeKrause:确保Java_主页是否指向该SDK,而不是系统中的默认JRE。它指向SDK@GeorgeKrause:发现问题。我已更新答案,但没有正确的url映射,它是如何工作的?
@WebServlet( name="AdminServlet", displayName="Admin Servlet", urlPatterns ={"/Hello","*.do"})
public class AdminServlet