我在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)


而且我敢肯定:


Tomcat正在运行并在执行./shutdown.sh之前运行良好
在执行./shutdown.sh之后,tomcat的进程仍然有效,但是它没有监听端口8080。

最佳答案

我想到了一些可能性:


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

关于java - Apache Tomcat关闭:java.net.ConnectException:连接被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13946753/

10-11 22:32
查看更多