【问题标题】:Requested resource isn't available (Servlet)请求的资源不可用(Servlet)
【发布时间】:2015-06-26 20:51:04
【问题描述】:

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

在项目资源管理器中:/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,但它仍然无法运行。

【问题讨论】:

  • 你能分享你的错误跟踪吗..
  • 我关闭然后打开 Eclipse。现在,我得到:'正在启动 apache-...' 遇到了问题。控制台输出:java.util.concurrent.ExecutionException... 由:org.apache.catalina.LifecycleException... 引起:java.lang.IllegalArgumentException... (我无法发布所有输出。太长了, 对不起)。我认为我做的一切都是正确的,但它仍然无法正常工作。
  • 右击服务器停止服务器并清理Tomcat的工作目录
  • 它没有用,即使在我删除并重新创建项目之后也是如此。很奇怪。

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


【解决方案1】:

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

但我注意到奇怪的行为:虽然 web.xml 被修改了问题,我可以运行服务器然后得到错误在浏览器中像Reuqested resource isn't available 或class not found /HelloServlet 和 /HelloServlet/HelloWorldServlet 中的异常。重新启动计算机后,我无法运行服务器(我认为是因为修改了 web.xml)。我不记得添加了什么新内容。

【讨论】:

    猜你喜欢
    • 2021-01-25
    • 2015-02-20
    • 2016-03-14
    • 2013-01-06
    • 1970-01-01
    • 2016-09-21
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多