Ich habe Tomcat 7 auf Centos 5.8 installiert. Dann habe ich ./startup.sh und ./shutdown.sh ausgeführt, es hat gut funktioniert.
Dann habe ich eine something.war unter die webapps / gelegt. es hat auch gut funktioniert. Aber wenn ich den Kater herunterfahre, funktioniert er nicht und löst eine Ausnahme aus:
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)
Und ich bin sicher:
Der Kater läuft und funktioniert gut, bevor ich ./shutdown.sh ausführe
Der Prozess des Tomcat ist noch am Leben, aber er lauscht nicht dem Port 8080, nachdem ich ./shutdown.sh ausgeführt habe
Antworten:
7 für die Antwort № 1Einige Möglichkeiten kommen mir in den Sinn:
- Es ist möglich, dass Ihre Web-App einen Thread startetdas nicht als "Daemon" ausgeführt wird - wodurch der Prozess am Leben bleibt. Ändern Sie dies in der Webanwendung, um ein freundlicheres Verhalten zu erzielen - oder implementieren Sie einen Listener, der den Thread herunterfährt, wenn Ihre Webanwendung herunterfährt. Sie können dies testen, indem Sie einen Thread auslösen dump (
kill -3 pid
) auf dem laufenden Tomcat-Prozess wird die Ausgabe (höchstwahrscheinlich) in catalina.out enden - Möglicherweise läuft ein anderer Kater an einem anderen Port - das ist es, was Sie in sehen
ps
Ausgabe - Sie haben den "shutdown" - Port geändert (siehe tomcat "s
server.xml
) - Dies ist, was shutdown.sh kontaktiert, um Tomcat anzuweisen, herunterzufahren
0 für die Antwort № 2
Stellen Sie sicher, dass Sie localhost in / etc / hosts für 127.0.0.1 haben
Meins war früher so
127.0.0.1 centosIGW localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Es funktioniert, nachdem ich localhost zu 127.0.0.1 hinzugefügt habe
127.0.0.1 centosIGW localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6