【问题标题】:Basic Tomcat Servlet error基本的 Tomcat Servlet 错误
【发布时间】:2011-02-04 07:30:29
【问题描述】:
package mypackage;

import java.io.*;

import javax.servlet.http.*;
import javax.servlet.*;

public class Hello extends HttpServlet {
  public void doGet (HttpServletRequest req,
                     HttpServletResponse res)
    throws ServletException, IOException
  {
    PrintWriter out = res.getWriter();

    out.println("Hello, world!");
    out.close();
  }
}

web.xml文件如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <display-name>Hello, World Application</display-name>
    <description>
    This is a simple web application with a source code organization
    based on the recommendations of the Application Developer's Guide.
    </description>

    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>mypackage.Hello</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

</web-app>

然后我正在执行 ant all 、ant reload 以及 /etc/init.d/tomcat restart

但我在浏览器上收到此错误:

HTTP 状态 404 - /hello/

输入状态报告

消息/你好/

描述 请求的资源 (/hello/) 不可用。 Apache Tomcat/6.0.26

可能出了什么问题?

【问题讨论】:

  • 听起来您的网络应用程序没有部署到 tomcat。你的 tomcat 是否安装了 manager servlet?这可以提供帮助。此外,将 servlet-mapping 中的 url-pattern 更改为“/*”。
  • 我改变了我的 web.xml ,做了 ant all 然后 ant 重新加载。我的 web.xml 仍然没有被复制到 tomcat webapps/hello/WEB-INF 文件夹中。为什么?

标签: tomcat servlets


【解决方案1】:

我认为目录结构有问题。通常你在目录结构下面做

webapps
  MyWebApp1
  MyWebApp2

如果您的应用程序被复制到MyWebApp1 文件夹,则调用localhost/MyWebApp1/hello

所以目录会是

webapps
  +MyWebApp1
    test.jsp
    WEB-INF
      web.xml
      +classes
        +mypackage
          hello.class
  +MyWebApp2

【讨论】:

  • 看OP的最后一条评论。他说他有一个webapps/hello/WEB-INF 文件夹。现在仔细看看 404 错误消息... :) 是的,很可能只是请求 URL 错误,而不是项目结构。
  • 根据他的目录结构,他必须调用'localhost/hello/hello'一个hello作为目录名,一个heloo作为servlet映射。他只是调用 localhost/hello tomcat 搜索welcomefile 没有找到任何欢迎文件并生成错误。
猜你喜欢
  • 2016-10-28
  • 1970-01-01
  • 2013-08-20
  • 2012-07-18
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2015-08-27
  • 2012-07-06
相关资源
最近更新 更多