【问题标题】:HTTP Status 404 - on Eclipse with TomcatHTTP 状态 404 - 在带有 Tomcat 的 Eclipse 上
【发布时间】:2012-07-02 15:39:16
【问题描述】:

我正在尝试使用 Eclipse 在我的本地 Tomcat 上运行一个 servlet。

但我不断收到此错误,不知道该怎么做。

我实际上是在这里记录的:http://www.screenr.com/ZyD8

非常感谢!

我也将 web.xml 更改为:

      <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID"
    version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >

    <display-name>
TEST3
    </display-name>

    <welcome-file-list>

        <welcome-file>
TEST3
        </welcome-file>
    </welcome-file-list>

    <servlet>

        <servlet-name>
helloServlet
        </servlet-name>

        <servlet-class>
HelloServlet
        </servlet-class>
    </servlet>

    <servlet-mapping>

        <servlet-name>
helloServlet
        </servlet-name>

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

</web-app>

【问题讨论】:

  • Servlet 是否有包,如果有,则在 web.xml 中写入完全限定的类名
  • 它在“默认包”中。但即使我在包“test.servlet”中创建它并将“test.servlet.HelloServlet”作为 web.xml 中的类名,它也会给出相同的错误

标签: eclipse servlets tomcat7


【解决方案1】:

我看到了你的链接。

当您运行任何动态 Web 项目时。默认情况下,Servlet 容器(在本例中为 Tomcat)搜索欢迎列表中指定的文件。检查你的web.xml,它应该包含类似的条目

<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>

您尚未从上述任何列表中创建文件。所以,运行

http://localhost:8080/TEST2 会给你 404 错误。

宁可运行:http://localhost:8080/TEST2/HelloSerlvet 将调用您创建的 servlet。

编辑:检查 Eclipse 的项目菜单并验证“自动构建”是否已选中并且 Servlet 容器正在运行 (http://localhost:8080)。

编辑 2:右键单击项目 --> 属性,选择 Java 构建路径 --> 源选项卡 --> 更改默认输出文件夹。创建/WEB-INF/classes/WebContent 下(eclipse 中默认)

【讨论】:

  • 请查看我附加的 web.xml - 当我输入“localhost:8080/TEST2/HelloSerlvet”时,它给出了同样的错误。我认为班级根本没有部署在正确的位置,但我不知道该怎么办?
  • 对不起,我尝试了一切,但仍然没有工作。我必须将什么作为 Buildpath 放在“构建路径上的源文件夹”下,我应该在“默认输出文件夹”下放什么。我应该检查“允许输出文件夹作为源文件夹”吗?
  • 请仔细阅读。我已经提到要创建新文件夹。在编辑 2
  • 是的,我还创建了 classes 文件夹 -> 我在顶部添加了屏幕
  • 此外,每当我在 /Library/Tomcat/test2/web-inf/classes 下的终端中检查我的类文件夹时,它都是空的。 HelloServlet 类不应该部署在那里还是我误解了?
【解决方案2】:

这是基于 Hardik Mishra 的回答,其中有一些亮点: 1. 从文件资源管理器(不是来自 Eclipse),在 /WebContent 下手动创建“/WEB-INF/classes” 2.右键项目-->属性,选择Java构建路径-->源选项卡-->将默认输出文件夹更改为刚才在上面创建的文件夹。 3. 转到文件资源管理器,而不是从 Eclipse,因为 Eclipse“项目资源管理器”可能有一些不显示类文件夹的过滤器。您应该会看到在此目录下编译的 .class 文件

尝试再次测试它。如果还是不行,重启 Eclipse 一次就可以了。

【讨论】:

    【解决方案3】:

    我已经看到这些类型的问题已经有一段时间了,并且已经看到了多种解决方案,它们对某些人有效,而其他人仍然面临同样的问题。

    一个简单的解决方案是遍历.java/.jsp/etc.,右键单击并选择从服务器运行选项。

    我发现这个解决方案是一种简单而有效的跑步方式。

    path Java Resource->src->->example.java-->右键-->运行方式-->在服务器上运行。

    即使在此之后,您也可能会遇到一些问题,例如端口 8005 不可用,请按照以下链接清除您当前的 Apache 设置并重新设置。

    TOMCAT - HTTP Status 404

    Deployment error:Starting of Tomcat failed, the server port 8080 is already in use

    希望这一发现对您有所帮助。

    【讨论】:

      【解决方案4】:

      通常,当您修改 web.xml 文件时,您应该“清理”Tomcat。只需在 Eclipse 中右键单击 Tomcat 并进行清理。对项目做同样的事情。您也可以停止 Tomcat,从 Tomcat 中删除应用程序(右键单击 Tomcat 下的应用程序并删除),然后将其添加回来。重启 Tomcat。

      【讨论】:

        【解决方案5】:

        我将把这个问题分为两种情况:

        场景 1:您尝试运行/执行 html/jsp 文件但收到此错误。

        场景 2:您已成功执行 jsp/html 文件,但它没有执行下一个 servlet 文件。示例:webcontent/webapp 中有 jsp 提交表单,它正在执行,但在填写并提交表单后,您会收到此错误。

        场景 1:

        1. 确保您的 jsp/html 文件位于您在创建项目时创建的 webcontent/webapp 文件夹中。

        2. 检查web.xml文件的内容应该是这样的:

        3. 尝试更改 tomcat 服务器版本。

        场景 2:

        1. 在此级别,您的主要罪魁祸首是 web.xml 文件,您必须在该文件中彻底检查 Servlet 映射或在文件级别添加 webservlet 注释。

        【讨论】:

        猜你喜欢
        • 2014-05-12
        • 1970-01-01
        • 2016-10-20
        • 2021-04-28
        • 1970-01-01
        • 2017-01-04
        • 2018-11-09
        • 2016-01-05
        • 1970-01-01
        相关资源
        最近更新 更多