请求的资源不可用(Servlet)

时间:2015-06-26 20:51:05

标签: eclipse tomcat java-ee servlets web.xml

我在Eclipse 4.5中创建了一个动态网络项目,名为HelloServlet并修改了web.xml。我还在Eclipse中添加了Tomcat 8。我认为我做的一切都是正确的,但我仍然无法运行servlet。

在Project explorer中:/src/HelloServlet/HelloWorldServlet.java。

HelloWorldServlet.java:

package HelloServlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloWorldServlet
 */
@WebServlet("/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().println("Hello world.");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

Web.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>HelloServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>HelloServlet.HelloWorldServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/HelloWorldServlet</url-pattern>
  </servlet-mapping>
</web-app>

有时,我class not found没有/HelloWorldServlet。我搜索并知道如何正确设置servlet-class,但它仍然无法运行。

1 个答案:

答案 0 :(得分:0)

似乎在较新的版本中(我不知道什么.Servlet或Eclipse?),我不必向web.xml添加任何内容。 @WebServlet("/HelloWorldServlet")似乎已经足够了。我通过尝试发现了它。

但是我注意到了奇怪的行为:虽然在问题中修改了 web.xml,但我可以运行服务器,然后在浏览器中获取错误,如{{1} } Reuqested resource isn't availableclass not found中的/HelloServlet例外情况/HelloServlet/HelloWorldServlet。重新启动计算机后,我无法运行服务器(我认为,因为修改了web.xml)。我不记得添加任何新内容。