【问题标题】:Tomcat - 404 page not found issueTomcat - 404 页面未找到问题
【发布时间】:2019-02-27 01:29:37
【问题描述】:

当我使用 eclipse 启动 tomcat 9,然后导航到 http://localhost:8080 时,它给出 404 - 找不到页面并抛出错误:“源服务器没有找到目标资源的当前表示或不愿意透露那个存在”。但是,当我转到 tomcat 目录并使用 tomcat9w.exe 启动进程然后执行http://localhost:8080 时,页面显示完美。可能有什么问题?

Elipse tomcat startup logs:

Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name:   Apache Tomcat/9.0.16
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Feb 4 2019 16:30:29 UTC
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 9.0.16.0
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 10
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.0
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre1.8.0_201
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_201-b09
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         C:\Users\vijay\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\Tomcat 9.0
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\vijay\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 9.0
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\vijay\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 9.0\endorsed
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Feb 26, 2019 7:24:14 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Loaded APR based Apache Tomcat Native library [1.2.21] using APR version [1.6.5].
Feb 26, 2019 7:24:14 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Feb 26, 2019 7:24:14 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
Feb 26, 2019 7:24:14 PM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized [OpenSSL 1.1.1a  20 Nov 2018]
Feb 26, 2019 7:24:14 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Feb 26, 2019 7:24:14 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Feb 26, 2019 7:24:14 PM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [697] milliseconds
Feb 26, 2019 7:24:14 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Feb 26, 2019 7:24:14 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.16]
Feb 26, 2019 7:24:15 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Feb 26, 2019 7:24:15 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Feb 26, 2019 7:24:15 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [388] milliseconds

I see the tomcat server in eclipse is started without any problem but can not reach to default website..

THanks

【问题讨论】:

  • 也许它正在监听另一个端口?你的 Eclipse 上的 tomcat 和你手动运行的那个是一样的吗?

标签: java eclipse tomcat9


【解决方案1】:
  1. 您的“HTTP 404:找不到文件”可能意味着您的 Eclipse 项目中缺少“index.jsp”。

  2. 从 Eclipse 运行 Tomcat 与从命令提示符运行 Tomcat(或等效地,作为 Windows 服务)运行相同。

    即使您指向 SAME Tomcat 安装(Eclipse > Services > Add),Eclipse 也会从“tomcat9w.exe”的不同子文件夹执行。

    您可以在您发布的日志中看到这一点:C:\Users\vijay\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core。尝试两种方式开始,然后比较“CATALINA_BASE”。


感谢您提供更多信息。具体来说:

  1. 问:这是从 成功 启动 Tomcat,对吗?大概来自运行tomcat9w.exe,对吗?

    [26/Feb/2019:17:27:56 -0600] "GET / HTTP/1.1" 200 11488 0:0:0:0:0:0:0:1 - - 
    [26/Feb/2019:17:27:56 -0600] "GET /tomcat.png HTTP/1.1" 200 5103 Eclipse Catina Logs for tomcat: 127.0.0.1 - - 
    
    [26/Feb/2019:19:13:38 -0600] "GET / HTTP/1.1" 404 1074 0:0:0:0:0:0:0:1 - - 
    [26/Feb/2019:19:13:43 -0600] "GET / HTTP/1.1" 404 1074 0:0:0:0:0:0:0:1 - - 
    [26/Feb/2019:19:13:57 -0600] "GET / HTTP/1.1" 404 1074 0:0:0:0:0:0:0:1 - - 
    
  2. 问:这些是一组完全不同的日志消息,与从 Eclipse 运行 Tomcat 不同,对吗?

  3. 您将不会获得 HTTP 404,除非 Tomcat“找不到”请求的资源。在这里,该资源是“/”。这意味着它希望找到一个“索引文件”,例如“index.html”、“index.jsp”或等效文件。

  4. 对于 Eclipse 项目,这意味着“webapp”文件夹根目录中的“index.jsp”。

  5. 问题:

    问:上面的 1) 和 2) 是否正确?

    问:您的 tomcat9w.exe" 启动是否打印 CATALINA_BASE 和 port#?如果是,请将它们复制/粘贴到您的原始帖子中。

    问:您的 Eclipse 日志是否打印任何错误消息?如果是这样,请将它们复制/粘贴到您的原始帖子中。

    问:你有一个“index.jsp”吗?它位于您的 Eclipse 项目中的什么位置?直接在“webapp”下?您是否还在“C:\Users\vijay\eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core”下的任何地方看到它?进入 Windows 资源管理器并查看。

请发回你找到的东西。

【讨论】:

  • 我的 Eclipse 中有 index.jsp 文件作为 Web 项目的启动。我遇到障碍的地方是,当我只想启动tomcat的启动站点时。为了清楚地了解您,如果我从eclipse启动项目,我无法访问默认的tomcat站点?感谢您的投入。
  • 这是我在 modules.xml 中的内容 -
  • 我比较了两个 catina 基本日志并看到了这一点:我仍然无法理解导致 404 的原因。 Tomcat 9 catina 基地:0:0:0:0:0:0:0:1 - - [26/Feb/2019:17:27:56 -0600] “GET / HTTP/1.1”200 11488 0:0: 0:0:0:0:0:1 - - [26/Feb/2019:17:27:56 -0600] "GET /tomcat.png HTTP/1.1" 200 5103 Eclipse Catina 用于 tomcat 的日志:127.0.0.1 - - [26/Feb/2019:19:13:38 -0600]“GET / HTTP/1.1”404 1074 0:0:0:0:0:0:0:1 - - [26/Feb/2019:19 :13:43 -0600] "GET / HTTP/1.1" 404 1074 0:0:0:0:0:0:0:1 - - [26/Feb/2019:19:13:57 -0600] "GET / HTTP/1.1" 404 1074 0:0:0:0:0:0:0:1 - - [26/Feb/2019:19:14:07 -
【解决方案2】:

您可以通过右键单击项目并单击来测试项目以在 Eclipse 中启动 运行方式 > 在服务器上运行

如果这可行,那么您的 tomcat 最初并没有指向该项目。因此无法找到 index.jsp/html。

如果你没有项目并且想从eclipse启动tomcat并显示默认的tomcat主页,你可以这样做。

双击服务器下的 Tomcat 服务器,然后从该选项中选择此项。

现在应该可以工作了。

【讨论】:

  • 我认为这在我的 Eclipse 中都被禁用了。但是我通过在 Eclipse 中重新编译我的项目使其工作。当我直接调用 url-mapping url 时,它现在可以工作并显示页面,当我使用 post 方法调用 servlet 时,它在上面抛出错误。再次感谢 Paul 和 Daniel 抽出时间审查和回复这篇文章。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多