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

时间:2012-12-19 06:32:04

标签: java tomcat shutdown

我在centos 5.8上安装了tomcat 7。 然后我执行了./startup.sh和./shutdown.sh,它运行良好。

然后我在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

2 个答案:

答案 0 :(得分:7)

我想到了一些可能性:

  • 您的webapp可能会启动一个不作为“守护程序”运行的线程 - 从而使进程保持活动状态。在webapp中更改此操作以使其更友好 - 或者实现在Web应用程序关闭时关闭线程的侦听器。您可以通过在正在运行的tomcat进程上触发线程转储(kill -3 pid)来测试这一点,输出将(最有可能)最终以catalina.out结束。
  • 可能在另一个端口上运行另一个tomcat - 这就是您在ps输出中看到的内容
  • 您已更改“关闭”端口(请参阅tomcat的server.xml) - 这是shutdown.sh联系以指示tomcat关闭

答案 1 :(得分:0)

检查/ etc / hosts中是否有localhost为127.0.0.1

我曾经是这样的

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

将localhost添加到127.0.0.1

后,它可以正常工作
127.0.0.1   centosIGW localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6