【问题标题】:Can't get my webapp accessible using eclipse, apache2 and tomcat7 (Ubuntu)无法使用 eclipse、apache2 和 tomcat7 (Ubuntu) 访问我的 webapp
【发布时间】:2013-11-27 10:32:34
【问题描述】:

我是 servlet 的新手,但我应该部署一个运行在 Tomcat 服务器(仅限本地主机)上的 Eclipse Web 项目。 整个过程在 Windows 上运行良好,但最近我不得不迁移到 Ubuntu 12.04,当我想访问该应用程序时遇到了这个问题:

如果我先启动apache2和tomcat7,输出

sudo netstat -lpn |grep :80

看起来像这样:

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12231/apache2
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 12848/java
tcp6 0 0 :::8080 :::* LISTEN 12848/java

然后我尝试在 eclipse 中启动服务器并遇到此错误:

cdrserver 所需的多个端口(8005、8080)已在使用中。服务器可能已经>正在另一个进程中运行,或者系统进程可能正在使用该端口。要启动此>服务器,您需要停止其他进程或更改端口号。

好吧,让我们杀死这些进程(虽然似乎 Tomcat 使用它们,因为当我停止 tomcat 时,2 个 tcp6 进程消失了)。

现在我可以启动 Eclipse 服务器,而不会发出任何警告:

2013 年 11 月 27 日上午 10:59:24 org.apache.coyote.AbstractProtocol 初始化

信息:初始化 ProtocolHandler ["http-bio-8080"]

2013 年 11 月 27 日上午 10:59:24 org.apache.catalina.startup.Catalina 加载

INFO:初始化处理时间为 869 毫秒

2013 年 11 月 27 日上午 10:59:24 org.apache.catalina.core.StandardService startInternal

信息:启动服务 Catalina

2013 年 11 月 27 日上午 10:59:24 org.apache.catalina.core.StandardEngine startInternal

信息:启动 Servlet 引擎:Apache Tomcat/7.0.26

2013 年 11 月 27 日上午 10:59:24 org.apache.catalina.startup.HostConfig 部署目录

INFO:部署 Web 应用程序目录 /home/aron/workspace/Text_manipulator

2013 年 11 月 27 日上午 10:59:26 org.apache.catalina.startup.HostConfig 部署目录

INFO:部署 Web 应用程序目录 /home/aron/workspace/.metadata

2013 年 11 月 27 日上午 10:59:26 org.apache.catalina.startup.HostConfig 部署目录

INFO:部署 Web 应用程序目录 /home/aron/workspace/Servers

2013 年 11 月 27 日上午 10:59:26 org.apache.coyote.AbstractProtocol 开始

信息:启动 ProtocolHandler ["http-bio-8080"]

2013 年 11 月 27 日上午 10:59:26 org.apache.catalina.startup.Catalina 开始

信息:服务器在 2101 毫秒内启动

现在,如果我在浏览器中输入通常(如在 Windows 上)的 URL:localhost/cdr,我会得到:

找不到

在此服务器上找不到请求的 URL /cdr。

Apache/2.2.22 (Ubuntu) 服务器在 localhost 端口 80

localhost/manager 也是如此(我最近得到了这个提示)。

此外,使用 localhost:8080/cdr 会导致页面完全空白。

这是我的 Eclipse 服务器设置:http://i.imgur.com/lV6FwTm.png

我还检查了项目中的 web.xml 文件,它有以下 servlet 类和相关映射:

  • Faces Servlet

  • 特立尼达资源 Servlet

  • 资源 Servlet

  • Spring MVC Dispatcher Servlet

我是否遗漏了一些明显的东西?

【问题讨论】:

  • 我在日志中看不到任何名为 cdr 的项目/目录。您能否验证此特定资源是否存在于部署文件夹 webapps/wtpwebapps 中?
  • 不,wtpwebapps 文件夹只包含一个ROOT/WEB.INF/web.xml 结构,xml 内容为3 行,带有详细的web-app 标签。有没有办法弥补缺失的资源?

标签: eclipse apache tomcat servlets ubuntu


【解决方案1】:

在此服务器上找不到请求的 URL /cdr。

Apache/2.2.22 (Ubuntu) 服务器在 localhost 端口 80

首先,您的 URL 应该类似于 localhost:8080,而不是 localhost,因为它默认为 localhost:80,并且您的系统上正在运行 apache2,这就是您收到 apache 服务器的 404 消息的原因。

其次,我担心您的日志显示的正在部署的资源

Nov 27, 2013 10:59:24 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/aron/workspace/Text_manipulator
Nov 27, 2013 10:59:26 AM org.apache.catalina.startup.HostConfig deployDirectory
**INFO: Deploying web application directory /home/aron/workspace/.metadata** --> ?
Nov 27, 2013 10:59:26 AM org.apache.catalina.startup.HostConfig deployDirectory
**INFO: Deploying web application directory /home/aron/workspace/Servers** --> ?
Nov 27, 2013 10:59:26 AM org.apache.coyote.AbstractProtocol start

什么是 .metadata ?这不是 eclipse 创建的用于管理工作区的隐藏文件夹之一吗?这不应该被部署。

什么是服务器?这看起来像 eclipse 中的服务器项目。

我没有看到任何资源,即 cdr 从日志中部署。因此,首先您需要验证是否已部署此特定资源。其次,我建议你阅读一下 Tomcat 的工作原理here

【讨论】:

  • 感谢您的回答,从您发送的教程开始,我终于掌握了应用程序!
  • 很高兴我能提供帮助
猜你喜欢
  • 2015-03-30
  • 2013-09-27
  • 2013-02-06
  • 2013-11-19
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2014-04-21
相关资源
最近更新 更多