Tomcat 8.0.20:使用@WebServlet无法使用请求的资源

时间:2015-03-26 12:04:05

标签: java tomcat servlets annotations

当我使用web.xml将Servlet绑定到url时,如下所示,每个工作正常。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
<servlet>
    <servlet-name>MainServlet</servlet-name>
    <servlet-class>lv.rtu.sux.laip.web.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MainServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

但是当我尝试使用@annotation @WebServlet执行此操作时,我会收到以下消息:使用无法使用所请求的资源。

我尝试了两种变体:

@WebServlet(name="hello",urlPatterns={"/hello"})
public class MainServlet extends HttpServlet{

@WebServlet("/hello")
public class MainServlet extends HttpServlet{

更新 我尝试使用普通的Tomcat运行此应用程序(在此之前我使用的是嵌入式Tomcat),现在它运行正常。 但是我如何通常使用嵌入式Tomcat运行它?我正在使用来自maven group org.apache.tomcat.embed 的库:

    String webappDirLocation = "src/main/webapp/";
    Tomcat tomcat = new Tomcat();

    tomcat.setPort(8089);
    Context ctx = tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
    tomcat.start();
    tomcat.getServer().await();

我是否必须执行一些其他操作才能使此应用与注释一起使用?

0 个答案:

没有答案