2012-12-19 263 views
1

我在centos 5.8上安装了tomcat 7。 然后我执行./startup.sh和./shutdown.sh,它运行良好。Apache Tomcat关闭:java.net.ConnectException:连接被拒绝

然后我在webapps /下放了一个something.war。它运行得很好。 但是,当我关闭Tomcat的,它不工作,并抛出一个异常:

java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
     at java.net.Socket.connect(Socket.java:529) 
     at java.net.Socket.connect(Socket.java:478) 
     at java.net.Socket.<init>(Socket.java:375) 
     at java.net.Socket.<init>(Socket.java:189) 
     at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:499) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:371) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:453) 

,我敢肯定:

  1. 将tomcat正在运行,效果很好我执行之前./ shutdown.sh

  2. 的Tomcat进程仍然活着,但它未侦听端口8080,我执行./shutdown.sh

后种
+0

不,我关机了,但是过程仍然活着。 –

+0

你为什么认为它还活着? – user1516873

+0

确保您具有足够的权限,因为您使用的是Linux。 – Subin

回答

7

一些可能性来我的脑海:

  • 这可能是你的webapp启动不作为“后台”运行一个线程 - 从而保持过程活着。在webapp中改变它以表现更友好 - 或者实现一个监听器,当你的webapp关闭时关闭这个线程。您可以通过在运行Tomcat进程触发线程转储(kill -3 pid)测试,输出将(最有可能)在catalina.out的最终
  • 有可能是另一个Tomcat上运行,在不同端口上 - 这就是你所看到的在ps输出
  • 你变了“关机”端口(见tomcat的server.xml) - 这是shutdown.sh是为了指导tomcat的关闭
+0

我想这是因为一个无守护线程,我会检查它。谢谢! –

+0

检查到有一个没有作为守护进程运行的ActiveMQ线程。所以也许这是问题。感谢 – zinking

+0

我也注意到通过tomcat的催生以及一些非守护线程,是要停止Tomcat – zinking

0

检查您在/ etc已经localhost的接触/主机为127.0.0.1

矿井曾经是这样的

127.0.0.1 centosIGW localhost.localdomain localhost4 localhost4.localdomain4 
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6 

它的工作原理后,我添加本地主机为127.0.0.1

127.0.0.1 centosIGW localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6 
相关问题