【问题标题】:java.net.BindException: Address already in use:8080java.net.BindException:地址已在使用中:8080
【发布时间】:2012-04-14 10:11:25
【问题描述】:

我正在尝试运行 Java webapp 构建实例,但它在构建过程中停止并出现以下错误:

java.net.BindException:地址已在使用中:8080

它显然试图绑定到 8080 端口,但另一个进程已经这样做了,并且不会共享。

所以,我查看了使用 8080 的进程(netstat -anp | grep 8080)。显然 jsvc.exec 进程正在监听我的 8080 端口。检查(ps -fp)后,我发现这是 Tomcat(boostrap.jar)。

所以,为了查看构建是否至少完成,我终止了该过程。是的! Webapp 构建已完全安装。但是当我将浏览器导航到 localhost:8080 时,它说服务没有运行 - 因为我杀死了 Tomcat!我什至尝试了 localhost:8080/manager/list。仍然说服务没有运行。

所以我重新启动 Tomcat,检查 localhost:8080 并且 Tomcat 已备份。检查了 localhost:8080/manager/list 但没有看到我刚刚构建的 Webapp 实例。

我在这里没有得到什么!如果我运行 tomcat(不能共享 8080),我的 webapp 将无法构建。如果我杀死 tomcat 来完成构建,webapp 显然无法运行,因为 Tomcat 已经死了。

请帮助我。在远程服务器上的 LAMP 环境中运行 Tomcat 5.5。注意:我正在运行一个预构建的 webapp 构建应用程序(战争),我无法对其进行更改。

【问题讨论】:

  • 您如何构建您的网络应用程序?使用 Maven?为什么需要在 8080 端口上启动您的应用程序?这样做是完全有效的,我只是想抓住丢失的部分。

标签: java web-applications lamp tomcat5.5


【解决方案1】:

在构建期间?构建过程通常不需要打开端口。问题是两个程序试图使用同一个端口。在不解决根本问题的情况下,直接的解决方法是更改​​运行 Tomcat 的端口。要更改运行 Tomcat 的端口,请编辑 install_dir/conf/server.xml 并将连接器元素的端口属性从 8080 更改为 8081。

【讨论】:

  • 感谢 freeone3000 阅读我的问题。你的建议很有道理,所以我试了一下。 1) 我将 server.xml 文件中的 Connector 元素更改为 8081。 2) 重新启动服务器 3) 运行 netstat -anp | grep 8081 并且确定 enuff tomcat 正在运行(jsvc.exec) 4)再次运行构建。它完成了。 5) 当我访问 localhost:8080 时,我仍然收到 HTTP ERROR: 503 Problem access /。原因:服务不可用 6)当我尝试 localhost:8081 时,它没有解决(我期待看到标准的 Apache Tomcat 页面)。不知道在这里说什么,除了我仍然很困惑。
  • 额外说明。当我终止构建实例(通过在终端控制台上点击返回)时,503 错误在 localhost:8080 消失并且页面不再解析。
  • 好的。因此,您的构建实例正在端口 8080 上运行网络服务器。出于某种原因。检查有关您正在构建的 WAR 的文档,了解它为什么需要这样做,以及如何访问它。至于 tomcat 实例,如果您无法访问 localhost:8081 ,则该端口上没有本地运行网络服务器。如果您有 400 或 500 类错误,有时在 Web 浏览器中报告为“无法连接”错误,那么您访问了错误的 URI,需要使用通常用于访问本地应用程序的 URI。
  • 谢谢。你很有帮助。我发现预建的 web-app (war) 带有分配给端口 8080 的内部客户端服务器。因此与 tomcat (8080) 冲突。所以我将tomcat切换到8081。问题解决了。谢谢
【解决方案2】:

如果这是您第一次运行 Confluence,或者您最近添加了应用程序或对系统进行了更改,请检查端口 8080 上运行的内容。

如果 Confluence 没有正常关闭,你可以重启机器或终止进程: 在 Windows 上:

  1. 点击Ctrl-alt-delete 并查看打开的程序。寻找 {{java.exe}}。

  2. 在命令窗口中,运行 {{netstat -an}}。检查哪些端口正在使用中。您可以通过这种方式识别正在运行的应用程序,然后从任务管理器中将其关闭。

【讨论】:

  • 谢谢。我发现预建的 web-app (war) 带有一个分配给端口 8080 的内部客户端服务器。因此与 tomcat (8080) 冲突。所以我将tomcat切换到8081。问题解决了。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2015-10-30
  • 2014-08-11
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
相关资源
最近更新 更多