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
谁能帮我解决这个问题吗?
Tomcat是否在重新启动之前运行?有没有其他应用程序在此端口上侦听?
由于没有人在命令端口上侦听,因此引发异常(请参阅$tomcat_home/conf/server.xml
中的<Server port="..."
)。
我在试图找出这个问题时看到了很多不足的答案。一般的回应是“你正试图阻止未开始的事情”或“某个其他程序正在你需要的端口上运行”。
问题原来是我的防火墙。我甚至没有考虑过这个问题,但8005港口(用于关闭的港口,感谢mindas)被*了。我改变了它,现在,没有更多的错误。祝你好运。
相同的端口问题在这里!谢谢! – 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版本,这可能是一个简单的问题(缺陷)有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被终止。检查您的防火墙,关机脚本等。
如果您在启动后立即关闭它,可能会发生这种情况。完全启动服务器需要一些时间。尝试检查正在运行的进程或访问服务器URL。 – amertkara 2015-09-01 15:28:43