我已经安装了 Eclipse 和 Tomcat 7。错误是当我从 Eclipse 运行 Tomcat 时它会启动,但之后,当我localhost:8080
在 Google Chrome 中打开时,我会得到HTTP Error 404()
. 请问我该如何解决?
8 回答
首先,停止您的 Tomcat,然后双击您的服务器,单击Server Locations
并检查Use Tomcat Installation (takes control of Tomcat installation)
.
这是因为没有默认的 ROOT Web 应用程序。当您创建一些 Web 应用程序并使用 Eclipse 将其部署到 Tomcat 时,您将能够使用以下形式的 URL 访问它
http://localhost:8080/YourWebAppName
其中YourWebAppName是您为 Web 应用程序指定的名称(所谓的应用程序上下文路径)。
引用Jetty Documentation Wiki(强调我的):
上下文路径是 URL 路径的前缀,用于选择将传入请求路由到的 Web 应用程序。通常,Java servlet 服务器中的 URL 是 format
http://hostname.com/contextPath/servletPath/pathInfo
,其中每个路径元素可以是零个或多个 / 分隔元素。如果没有上下文路径,则上下文称为根上下文。
如果您仍然想要使用表单的 URL 访问的默认应用程序
http://localhost:8080
或者如果您将默认的 8080 端口更改为 80,那么只需
http://localhost
即没有应用程序上下文路径,请阅读以下内容(引自教程:安装 Tomcat 7 并与 Eclipse 一起使用,强调我的):
将 ROOT(默认)Web 应用程序复制到 Eclipse 中。Eclipse 在 Eclipse 工作区中创建 Tomcat 文件夹时忘记复制默认应用程序(ROOT、示例、文档等)。转到 C:\apache-tomcat-7.0.34\webapps 并复制 ROOT 文件夹。然后转到您的 Eclipse 工作区,转到 .metadata 文件夹,然后搜索“wtpwebapps”。您应该找到类似的东西
C:\your-eclipse-workspace-location\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
(或者.../tmp1/wtpwebapps
如果您已经在 Eclipse 中注册了另一台服务器)。转到wtpwebapps
文件夹并粘贴 ROOT(如果询问您是否要合并/替换文件夹/文件,请说“是”)。然后重新加载http://localhost/
以查看 Tomcat 欢迎页面。
检查服务器配置和文件夹的路由:
打开服务器视图(窗口 -> 打开视图... -> 其他... -> 搜索“服务器”。
右键单击服务器(我的是 Tomcat v6.0)-> 属性-> 单击“切换位置”(检查该位置类似于 /servers ...
双击服务器。这将打开一个新的服务器页面。在“服务器位置”区域中,选中“使用 Tomcat 安装(控制 Tomcat 安装)”选项。
重新启动您的服务器。
享受!
如果您更改了位置,使用选项“使用自定义位置(不修改 Tomcat 安装)”并且部署的目录是“wtpwebapps”,那么您必须:
- 从 [workspace metadata] 切换到 /Servers/Tomcat v....,单击应用,确定。
- 重新启动服务器,如果您发现 404 错误消息而不是服务器正在运行,它只是在您选择的 Web 服务器位置没有启动文件。如果您遍历该位置,您会发现一堆已创建的目录。其中之一是wtpwebapps,其下有ROOT。这是您的网络服务器的目录。您需要返回已安装的 Tomcat 目录并将 <tomcat's installed dir>/web-apps/ROOT 的内容复制到您的 wtpwebapps。重新启动网络服务器,您应该会看到 tomcat 默认页面。
- 要使服务器状态、管理器应用程序和主机管理器正常工作,您必须将其他子目录从 <tomcat's installed dir>/webapps(即 docs、examples、host-manager、manager)复制到您的“webapps”(不是 wtpwebapps ) 目录。
- 编辑 '<your web directory>/conf/tomcat-users.xml' 并输入如下内容:
-
然后编辑 '<your web directory>/conf/server.xml',添加属性:
只读=“真”
进入 <GlobalNamingResources/> 组的 <Resource/> 键。 - 重新启动服务器并尝试使用配置的凭据登录。
<role rolename="manager-gui"/> <role rolename="manager-status"/> <role rolename="manager-jmx"/> <role rolename="manager-script"/> <role rolename="admin-gui"/> <role rolename="admin"/> <user username="admin" password="yourpassword" roles="admin, admin-gui, manager-gui"/>
注意:如果您更改服务器配置,假设您想比较默认配置(使用 tomcat 安装目录)和“新目录”,当切换回“新目录”时,“tomcat-users.xml”将是被默认文件覆盖,因此在执行此操作之前将此文件的内容保存在某处,然后将其复制回来。如果您只给用户名“admin”角色,您将被提示帮助消息。它说:您不应该授予 admin-gui 或 manager-gui 角色“manager-jmx”和“manager-script”角色。
Eclipse 在 Eclipse 工作区中创建 Tomcat 文件夹时忘记复制默认应用程序(ROOT、示例等)。转到 C:\apache-tomcat-7.0.34\webapps,右键单击 ROOT 文件夹并复制它。然后转到您的 Eclipse 工作区,转到 .metadata 文件夹,然后搜索“wtpwebapps”。您应该找到类似 your-eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 的内容(或 .../tmp1/wtpwebapps,如果您已经在 Eclipse 中注册了另一台服务器)。转到 wtpwebapps 文件夹,单击鼠标右键并粘贴 ROOT(如果询问您是否要合并/替换文件夹/文件,请说“是”)。然后重新加载http://localhost/以查看 Tomcat 欢迎页面。
- 单击窗口 > 显示视图 > 服务器或在“服务器”视图中右键单击服务器,选择“属性”。
- 或 通过双击打开服务器的概览屏幕。
- 在“服务器位置”选项卡中,选择“使用 Tomcat 位置”。
- 保存配置并重新启动服务器。
这样 Eclipse 将完全控制 Tomcat,这样当您从 Eclipse 内部运行时,您还可以使用 Tomcat 管理器访问默认的 Tomcat 主页。
安装 Tomcat 后我遇到了这个或类似的问题。
其他答案不太奏效,但让我走上了正确的道路。在发现一个显示我遇到的确切问题的 YouTube 视频后,我在https://stackoverflow.com/a/20762179/3128838上回答了这个问题。
解决此问题的另一种方法是在 Eclipse 上转到服务器的属性(右键单击服务器 -> 属性) 在常规选项卡中,您会看到位置为 workspace.metadata。点击切换位置。