2012-12-19 207 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 
相關問題