【问题标题】:Error 404 - The requested resource is not available in Eclipse with tomcat 7 [duplicate]错误 404 - 请求的资源在带有 tomcat 7 的 Eclipse 中不可用 [重复]
【发布时间】:2013-01-17 00:53:18
【问题描述】:

我正在尝试使用 eclipse 和 tomcat 7 运行一个简单的网络应用程序。 我是一个带有文本输入的索引 html 文件和一个调用 servlet 的提交按钮。

我创建了一个动态 web 项目并将 html (index.html) 文件放在 WebContent 文件夹中。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
    <form action="/TestServ" method="get">
        <input type="text" name="input">
        <input type="submit" value="Send it!">
    </form>
</body>
</html>

我的包 com.testing.web 在 /Java Rescourcs/src 下 在其中我的 servlet (TestServ.java) 看起来像这样:

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

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServ() {
        super();
        // TODO Auto-generated constructor stub
        System.out.println("AA%WU^SDJI&^R&KU");
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("AA%WU^SDJI&^R&KU");
    }
}

当我选择运行->在项目的服务器上运行时,index.html 文件加载得很好。 问题是当我提交表单时,我得到以下错误页面:

HTTP 状态 404 - /TestServ -------------------------------------------------- ------------------------------ 类型状态报告 消息 /TestServ 描述 请求的资源不可用。 -------------------------------------------------- ------------------------------ Apache Tomcat/7.0.34

我已经搜索和搜索,但没有找到对我有帮助的解决方案。 网络上的大多数答案都指向 servlet url 映射错误。 请注意,我尝试了很多都无济于事。

此外,我想补充一点,我的服务器配置为在运行时环境选项中使用 jdk1.7.0_10。

最后,我不明白为什么在构建项目时 Eclipse 没有在 WEB-INF 下创建正确的类/结构。

我完全被迷住了,任何帮助都将不胜感激。 非常感谢您!

【问题讨论】:

  • 你的完整网址是什么?
  • 如果应用程序部署正确(必须在日志中检查),您的 servlet 的 url 是 http://.../[name-of-the-war]/TestServ但仔细检查你在tomcat日志中没有任何问题。顺便说一句,你在输出中看到你的“AA%WU^SDJI&^R&KU”了吗?
  • 感谢您的回复。 Tech-我的网址是localhost:9999/TestProj,它会打开index.html,然后当我点击提交按钮时:localhost:9999/TestServ?input=whixh 给了我错误。
  • ZNK-M - 我不确定如何在 eclipse 中检查服务器实例的日志:/ 另一方面,我的输出消息只有在我执行 Run-> 时才会显示在控制台中在 servlet 文件上直接在服务器上运行。当我浏览索引并提交过程时,它没有。

标签: eclipse tomcat web-applications eclipse-wtp


【解决方案1】:

终于找到问题了,和往常一样是最简单的事情。

表单中的动作需要是这样的:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
    <form action="/TestProj/TestServ" method="get">
        <input type="text" name="input">
        <input type="submit" value="Send it!">
    </form>
</body>
</html>

和url映射如下:

<servlet>
    <servlet-name>TestServ</servlet-name>
    <servlet-class>com.testing.web.TestServ</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServ</servlet-name>
    <url-pattern>/TestServ</url-pattern>
  </servlet-mapping>

坦率地说,我不完全明白为什么。 /Testproj 不应该被视为应用程序的根吗? :/ 总之……

【讨论】:

  • 这是我读到的第 7 个请求的资源不可用所以问题。最后! /TestProj/TestServ 不是 /TestServ
【解决方案2】:

为了消除 404 错误,我们必须检查 web.xml 和您在选项卡中提供的 url。网址应该像 http:////。如果是webservice应用

【讨论】:

    【解决方案3】:

    您的服务器配置没有问题。需要对 web.xml 文件进行一些修改。试试这个!

    1. 打开“web.xml”文件。
    2. 在“&lt;display-name&gt;”标签和“&lt;welcome-file-list&gt;”标签之间添加这些标签。

      <servlet> <servlet-name>TestServ</servlet-name> <servlet-class>TestServ</servlet-class> </servlet>

      <servlet-mapping> <servlet-name>TestServ</servlet-name> <url-pattern>/TestServ</url-pattern> </servlet-mapping>

    3. 运行您的项目并在浏览器中输入 URL 为“http://localhost:8080/TestServ

    希望它会奏效! :)

    附: * 您实际上可以在“&lt;servlet-name&gt;”标签之间使用任何名称。但两个地方的名字必须相同。

    【讨论】:

      猜你喜欢
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2015-03-09
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      相关资源
      最近更新 更多