Tomcat 正在运行但 8080 端口没有响应

Posted

技术标签:

【中文标题】Tomcat 正在运行但 8080 端口没有响应【英文标题】:Tomcat is running but 8080 port is not responding 【发布时间】:2012-01-23 04:33:09 【问题描述】:

我已经通过 ssh 在 linux x64 机器上安装了 sunjdk 1.6 x64 和 tomcat,我没有 root 权限,所以我都安装在我的主目录中。

我设法成功运行了 tomcat,但如果我尝试输入 mydomain.com:8080,则服务器没有响应。

使用这个命令:

netstat -atnp|grep LISTEN

我检查了端口,它正在监听

Dec 18, 2011 5:11:20 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home2/fiegmund/jdk1.6.0_25/jre/lib/amd64/server:/home2/fiegmund/jdk1.6.0_25/jre/lib/amd64:/home2/fiegmund/jdk1.6.0_25/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Dec 18, 2011 5:11:21 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Dec 18, 2011 5:11:21 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Dec 18, 2011 5:11:21 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2015 ms
Dec 18, 2011 5:11:21 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Dec 18, 2011 5:11:21 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
Dec 18, 2011 5:11:21 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home2/fiegmund/apache-tomcat-7.0.23/webapps/docs
Dec 18, 2011 5:11:24 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,869] milliseconds.
Dec 18, 2011 5:11:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home2/fiegmund/apache-tomcat-7.0.23/webapps/manager
Dec 18, 2011 5:11:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home2/fiegmund/apache-tomcat-7.0.23/webapps/ROOT
Dec 18, 2011 5:11:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home2/fiegmund/apache-tomcat-7.0.23/webapps/examples
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home2/fiegmund/apache-tomcat-7.0.23/webapps/host-manager
Dec 18, 2011 5:11:25 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Dec 18, 2011 5:11:25 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Dec 18, 2011 5:11:25 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4582 ms>

有什么想法吗?

【问题讨论】:

本地机器上的 telnet 能用吗? 那么很可能是您的托管服务提供商不允许监听大于 1024 的端口... 第一次运行良好。比重新启动后它挂起(端口正在监听,我可以连接)。日志、盲目的配置更改、strace、重新启动 - 没有任何帮助。比我休息了。当我回来时,我意识到它正在工作!我查了一下,启动大概需要8分钟[:oink:] 【参考方案1】:

第一步是在本地登录时运行 telnet localhost 8080。然后输入类似

GET /

你应该得到 html。 如果这不起作用,那么 tomcat 没有真正正常运行或没有在端口 8080 上侦听。 如果这可行,但从外部尝试时,请确保您拥有正确的 IP 地址。先用ip地址试试。如果 ip 地址有效,也许您的 mydomain.com 无法解析。 如果 ip 是正确的(与您 ssh 相同的)并且它仍然不起作用,那么您可能正在运行不允许 8080 通过的防火墙。更改防火墙配置需要 root 访问权限。

【讨论】:

我忘了告诉服务器已经使用端口 80 安装了 Apache http Server。无论如何,我尝试了:lwp-request localhost:8080,我得到了 apache tomcat 的 html...跨度> 我用 netstat 检查了端口,我得到了 :::8080 和 0.0.0.0:8080。 Telnetting GET / 它根本不回复。我有来自网络应用程序启动的良好日志。我应该检查什么?【参考方案2】:

我的问题是我的 Tomcat 开始只收听 IPv6。把它放在这里以防其他人发现同样的事情。

我能够得到正确的回应

curl -g -6 "http://[::1]:8080/"

但不是本地主机。 为了解决这个问题,我从 conf/server.xml 中删除了 address 属性:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" URIEncoding="UTF-8" />
           address="0.0.0.0" />

然后重新启动并再次绑定到 IPv4。我知道它应该是其他方式,但这就是为我解决它的原因。操作系统是 Ubuntu。

【讨论】:

【参考方案3】:

尝试在linux终端上使用以下命令列出TCP IP和对应用程序的端口引用,如“java”,如下所示。

[root@h5 ~]# netstat -ltnp | grep java -i --colour 
tcp        0      0 10.15.11.20:9990    0.0.0.0:*               LISTEN      1626/java           
tcp        0      0 10.15.11.20:8080    0.0.0.0:*               LISTEN      1626/java           
tcp        0      0 10.15.11.20:8443    0.0.0.0:*               LISTEN      1626/java 
   

首先您需要检查防火墙的开放端口。

firewall-cmd --list-ports

如果已开启且端口不存在,请允许相关端口 8080,如下所示。

firewall-cmd --permanent --zone=public --add-port=8080
firewall-cmd --reload

【讨论】:

【参考方案4】:

在 CentO 上我必须手动打开防火墙

sudo firewall-cmd --zone=public --add-port=7999/tcp --permanent
sudo firewall-cmd --reload

不知道怎么做,但是如果 Docker 在同一个端口上运行一个容器,它会自动打开防火墙,所以让我失望

【讨论】:

你拯救了我的一天!【参考方案5】:

在war部署的情况下,如果war文件有错误,tomcat可能无法解压war文件。确保在 tomcat//libexec/webapps 中创建了一个与 war 文件同名的文件夹,否则 localhost:8080 会卡住。

【讨论】:

【参考方案6】:

如果其中一个部署的应用程序太慢而无法初始化,Tomcat 可能会太慢而无法启动。当您启动 Tomcat 时,您可以看出这种情况,但浏览器说服务器没有响应,即使您可以看到端口正在侦听(通过 telnet 连接)。另请注意,您的 CPU 使用率可能过高。就我而言,这是因为我在记录器上启用了 TRACE 模式。

【讨论】:

【参考方案7】:

您可以尝试通过运行来确认服务器的状态:

 lsof -i :8080

【讨论】:

【参考方案8】:

try this, it will solve the issue, Window -> Web browser -> Chrome. For external browser

【讨论】:

不鼓励仅链接答案,请在答案中包含最重要的代码。【参考方案9】:

关闭 IDE。如果您在 Windows 系统上,请重新启动进程 java.exe。然后启动 IDE。

【讨论】:

这不是 IDE 问题。 OP 明确声明它是具有 SSH 访问权限的 Linux 服务器。

以上是关于Tomcat 正在运行但 8080 端口没有响应的主要内容,如果未能解决你的问题,请参考以下文章

配置为侦听端口 8080 的 Tomcat 连接器无法启动 - 端口 8080 上没有运行

端口 8080 已在使用中,并且没有列出使用 8080 的进程

为啥eclipse启动tomcat登录不了localhost:8080

配置iptables,把80端口转到8080

配置iptables,把80端口转到8080

Tomcat v6.0 Server @ localhost 所需的几个端口(8080, 8009)已在使用中。服务器可能已在另一个进程中运行,或者某个系统进程可能正在使用该端口。