Apache Tomcat:java.net.ConnectException:连接被拒绝

问题描述:

虽然我试图阻止tomcat服务器给它一个这样的错误。Apache Tomcat:java.net.ConnectException:连接被拒绝

[[email protected] classes]# service tomcat restart 
Stopping Tomcat service: Using CATALINA_BASE: /opt/tomcat 
Using CATALINA_HOME: /opt/tomcat 
Using CATALINA_TMPDIR: /opt/tomcat/temp 
Using JRE_HOME:  /usr 
Apr 17, 2011 10:11:53 PM org.apache.catalina.startup.Catalina stopServer 
SEVERE: Catalina.stop: 
java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:381) 
    at java.net.Socket.connect(Socket.java:537) 
    at java.net.Socket.connect(Socket.java:487) 
    at java.net.Socket.<init>(Socket.java:384) 
    at java.net.Socket.<init>(Socket.java:198) 
    at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:421) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:337) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415) 
                  [ OK ] 

Starting Tomcat service: Using CATALINA_BASE: /opt/tomcat 
Using CATALINA_HOME: /opt/tomcat 
Using CATALINA_TMPDIR: /opt/tomcat/temp 
Using JRE_HOME:  /usr 

谁能帮我解决这个问题吗?

+0

如果您在启动后立即关闭它,可能会发生这种情况。完全启动服务器需要一些时间。尝试检查正在运行的进程或访问服务器URL。 – amertkara 2015-09-01 15:28:43

Tomcat是否在重新启动之前运行?有没有其他应用程序在此端口上侦听?

由于没有人在命令端口上侦听,因此引发异常(请参阅$tomcat_home/conf/server.xml中的<Server port="...")。

我在试图找出这个问题时看到了很多不足的答案。一般的回应是“你正试图阻止未开始的事情”或“某个其他程序正在你需要的端口上运行”。

问题原来是我的防火墙。我甚至没有考虑过这个问题,但8005港口(用于关闭的港口,感谢mindas)被*了。我改变了它,现在,没有更多的错误。祝你好运。

+0

相同的端口问题在这里!谢谢! – Maitreya 2015-02-11 05:00:28

不知道您的问题是否已修复以及如何解决。但是在尝试创建一个tomcat实例时,我遇到了同样的问题。

  • 该端口未被使用。
  • 没有防火墙问题。
  • Tomcat实例启动正常。

我改变了自定义关机脚本,并修复了此问题。 旧脚本: -

出口CATALINA_HOME = /家庭/ lrsprod/ELA/tomcat6中/ Apache的Tomcat的6.0.35 $ CATALINA_HOME /斌/ catalina.sh停止

新增卡特琳娜基地它。

出口CATALINA_BASE = /家庭/ lrsprod/ELA/tomcat6中/ ela_instance 出口CATALINA_HOME = /家庭/ lrsprod/ELA/tomcat6中/ Apache的Tomcat的6.0.35 $ CATALINA_HOME /斌/ catalina.sh停止

这样做。

我也遇到过这个问题。 您可以尝试任何的下列步骤操作:在您的计算机的其他Tomcat实例

根据您的Tomcat版本,这可能是一个简单的问题(缺陷)有0字节的日志文件。查看/var/log/tomcatX.Y,其中X.Y是您正在使用的版本,并检查日志文件catalina.out是否可读写。如果它有0个字节并且不可访问,那么只需删除它并重新启动Tomcat。这已经解决了我们几次的问题。

你可以试着停下来和重新开始:

$ cd /path/apache-tomcat x.x.x/bin 

然后

$ sh shutdown.sh 

当成功地完成了最后一步,你必须打开你的Tomcat和卡特琳娜用命令

$ sh startup.sh 

我设法用这种方式解决我的问题

另一个可能的根本原因是您的tomcat尚未完全启动。

如果您执行ps -ef| grep apache,您会看到服务器正在运行,并且如果您检查catalina.out,它将显示服务器已初始化为123毫秒 - 但它仍可能将应用程序部署到您的webapps目录中。

这个连接拒绝问题还有一个解释,我错过了上面的答案。在我的情况下,我有线程运行(石英调度程序)从上下文监听器(在contextInitialized)开始,永不停止(如在contextDestroyed)。

这反过来导致关联的服务器端口关闭,容器继续运行(因此:服务器端口上的连接被拒绝)。

我修好了它停止在contextDestroyed石英,我从来没有遇到过这个问题。

在这里看到类似的问题:Tomcat doesn't stop. How can I debug this?

此异常的含义说明如下: https://bz.apache.org/bugzilla/show_bug.cgi?id=27829

摘要:Java的模具,Tomcat的关闭钩子被调用时,抛出异常。

因此,如果防火墙阻止关闭消息到达Tomcat,Java将最终死亡(例如在系统重新引导/关闭期间),并且将出现异常。

还有其他的可能性。

就我而言,我的问题与我的initscript(Linux)被错误安装有关。这意味着Java在关机/重启过程中被操作系统杀死,而不是脚本的结果。这样简单的解决方案:

chkconfig --del initscript 
chkconfig --add initscript 

修复之前,我曾在rc.d的以下内容:

find /etc/rc.d | grep initscript | sort 
/etc/rc.d/init.d/initscript 
/etc/rc.d/rc2.d/S85initscript 
/etc/rc.d/rc3.d/S85initscript 
/etc/rc.d/rc4.d/S85initscript 
/etc/rc.d/rc5.d/S85initscript 

修复程序后:

find /etc/rc.d | grep initscript | sort 
/etc/rc.d/init.d/initscript 
/etc/rc.d/rc0.d/K15initscript 
/etc/rc.d/rc1.d/K15initscript 
/etc/rc.d/rc2.d/K15initscript 
/etc/rc.d/rc3.d/K15initscript 
/etc/rc.d/rc4.d/K15initscript 
/etc/rc.d/rc5.d/S85initscript 
/etc/rc.d/rc6.d/K15initscript 

结论:如果你得到这个例外,请确保Tomcat正确关闭,而不是由于Java被终止。检查您的防火墙,关机脚本等。