HTTP状态404 - 请求的资源(/)不可用

59

我在Eclipse中集成了Tomcat 7。当我使用Eclipse启动它时,它显示Tomcat正在运行,但是当我在浏览器中输入http://localhost:8080访问时,出现以下错误:

HTTP 状态码 404 - /

类型 状态报告

信息 /

描述 所请求的资源(/)不可用。

Apache Tomcat/7.0.23

我尝试更改server.xml中的端口,以防8080被另一个服务使用,但这也没有起作用。我该如何解决这个问题?


也许Eclipse在启动服务器时使用了不同的端口,而不考虑Tomcat的配置。 - Ivaylo Slavov
2
你期望在那里看到什么?在Eclipse中运行时,在/路径下没有任何内容,你需要创建一个Web应用程序,它将显示在/yourwebapp/路径下。 - nos
如果你收到了404错误,那么Web服务器已经响应了。它甚至显示“Apache Tomcat/7.0.23”,只是没有内容可以响应。 - Stefan Paul Noack
只需观看这个教程,但要全部观看!因为在第9分钟他开始谈论那个。http://javabrains.koushik.org/courses/servlets_intro/lessons/Setting-up - 1392023093user
13个回答

117
如果你期望的是默认的Tomcat主页,那么你需要配置Eclipse以接管Tomcat。在“服务器”选项卡中双击Tomcat服务器条目,你将获得服务器配置。在左侧栏下的“服务器位置”下,选择“使用Tomcat安装”(注意,当它变灰时,请阅读前导文本!)。这样,Eclipse将完全控制Tomcat,您还可以通过Tomcat Manager从Eclipse内部运行访问默认的Tomcat主页。我只是不知道在使用Eclipse开发时这有什么用处。

enter image description here

端口号并不是问题。否则,您将在Tomcat的启动日志中收到异常,浏览器会显示特定于浏览器的“连接超时”错误页面(因此不会出现Tomcat特定的错误页面,因为当Tomcat未启动时不可能提供该页面!)

22
如果这个部分被灰显,则请确保 Tomcat 没有任何项目被配置。如果有,请删除它,这个灰显的部分就会变成可用状态,然后保存配置即可,这样就可以正常工作了。 - Laavaa
1
@Laavaa:这也在该部分非常明确地提到了...“服务器必须发布,没有模块存在才能进行更改” :) - BalusC
6
@BalusC - 移除灰色部分的步骤 - Tomcat服务器 > 右键单击 > 一般 {注意位置的值} > 切换位置 {位置的值发生更改} > 确定. 现在按照balusC的回答操作。404错误的原因是使用了workspace metadata option将使用Eclipse元数据,而该元数据没有管理员控制台的欢迎页面。 - Erran Morad
1
除了这里提到的步骤,我还必须在灰色部分变为活动状态之前启动和停止服务器。 - kansasian
1
谢谢 @BalusC。有时候“使用Tomcat安装”选项是被禁用的。要启用它,可以参考这个链接: https://dev59.com/cHNA5IYBdhLWcg3wUMDn#1012459 - Md. Sajedul Karim
显示剩余3条评论

38

以下步骤帮助我解决了这个问题。

  1. 在eclipse中右键单击服务器,然后单击属性。
  2. 如果位置设置为workspace/metadata,请单击切换位置以使其引用localhost.server下的/servers/tomcatv7server。
  3. 保存并关闭
  4. 接下来双击服务器
  5. 在服务器位置下,大多数情况下会选择使用workspace metadata。而应该选择使用tomcat安装。
  6. 保存更改
  7. 重新启动服务器并验证localhost:8080是否正常工作。

谢谢,这对我有用。但我仍然不明白它是如何工作的。 - HyperioN
https://pastecord.com/imydakiloh。我已经写下了问题,请帮我解决这个问题。 - deepakl.2000

16

将 ROOT(默认)Web应用程序复制到 Eclipse 中。

Eclipse 在创建 Tomcat 文件夹时,会忘记复制默认应用程序(如 ROOT、示例等)。

  • 进入 C:\apache-tomcat-7.0.27\webapps,右键单击 ROOT 文件夹并复制它。
  • 然后前往您的 Eclipse 工作区,进入 .metadata 文件夹,并搜索“wtpwebapps”。您应该能够找到类似于 your-eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 的内容(如果您已经在 Eclipse 中注册了另一个服务器,则可能是 .../tmp1/wtpwebapps)。
  • 进入 wtpwebapps 文件夹,右键单击并粘贴 ROOT(如果询问是否要合并/替换文件夹/文件,请选择“是”)。
  • 然后重新加载 localhost:8080,即可查看Tomcat欢迎页面。

6

我按照BalusC所说的做了,但对我来说还不够,我必须清理Tomcat工作目录:(在Servers选项卡中右键单击Tomcat -> 清理Tomcat工作目录)


5
请再次检查您的服务器规格,如果您已将端口号更改为其他值,请相应地更改链接中的端口号。
在尝试访问本地主机之前,请确保您的服务器正在正常运行。

5

如果你是JSP/Tomcat的新手,请不要修改tomcat的xml文件。

我假设你已经部署了Web应用程序。但为了确保,可以尝试以下步骤: - 右键单击您的Web应用程序 - 选择Run As / Run on Server,选择Tomcat 7

这些步骤将部署并在浏览器中运行您的应用程序。另一个检查Tomcat是否正常工作的方法是找到Tomcat存在的路径(在Eclipse插件中),将一些可用的WAR文件复制到webapps(而非wtpwebapps)中,然后尝试运行该应用程序。


3

有时清理服务器是有效的。这在程序之前一直可用但突然停止工作的情况下才适用。
步骤:
“右键单击Tomcat Server->清理。然后重新启动服务器。”


3
如果“服务器位置”下的选项为灰色,则请注意该部分标题中的消息:“必须发布没有模块的服务器”。要发布服务器,请在“服务器”窗口中右键单击服务器名称,然后选择“发布”。

1

我在使用Eclipse Luna、Maven和Tomcat时遇到了相同的问题——Tomcat主页可以正常显示,但我的项目却出现了404错误。

尝试了许多建议的解决方案(更新spring .jar文件、更改Tomcat服务器属性、添加/删除项目、将JRE从1.6更改为7等),都没有解决这个问题。对我有用的是刷新我的项目。看起来Eclipse在(Maven)构建后不会自动刷新项目。在Eclipse 3.3.1中,有一个“自动刷新”的选项,在“首选项”>“常规”>“工作区”下,但在Luna中似乎没有这个选项。

  1. 对该项目执行Maven清理安装。
  2. ** 右键单击该项目并选择“刷新”。 **
  3. 右键单击Eclipse Tomcat服务器并选择“清理”。
  4. 右键单击>发布,然后启动Tomcat服务器。

1
这可能是我第n次(其中n > 100)遇到这个问题,每次我都会发现一些解决方法。我按照这里提到的步骤进行操作,它们起作用了。 - tarekahf

1
在我的情况下,我必须点击我的项目,然后进入文件 > 属性 > *servlet名称*并单击重新启动servlet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接