1

centos 5.8にTomcat 7をインストールしました。その後、./startup.sh と ./shutdown.sh を実行したところ、うまくいきました。

次に、something.war を webapps/ の下に置きます。それもうまくいきました。しかし、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 のプロセスはまだ生きていますが、./shutdown.sh を実行した後、ポート 8080 をリッスンしていません。

4

2 に答える 2

7

いくつかの可能性が頭に浮かびます:

  • Web アプリケーションが「デーモン」として実行されないスレッドを開始する可能性があります。これにより、プロセスが存続します。webapp でこれを変更して、よりフレンドリーに動作するようにするか、webapp のシャットダウン時にスレッドをシャットダウンするリスナーを実装します。これをテストするには、実行中の tomcat プロセスでスレッド ダンプ ( kill -3 pid) をトリガーします。出力は (ほとんどの場合) catalina.out になります。
  • 別のポートで別の tomcat が実行されている可能性があります。それがps出力に表示されます。
  • 「シャットダウン」ポートを変更しました (Tomcat を参照server.xml)。これは、tomcat にシャットダウンを指示するために shutdown.sh が接続しているものです。
于 2012-12-19T07:10:49.993 に答える
0

/etc/hosts に 127.0.0.1 の localhost があることを確認します

うちのは昔はこうだった

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
于 2015-12-02T05:24:00.153 に答える