私はTomcatに奇妙な問題があります。私はTomcatを正常に起動することができ、問題があれば正常に動作しています。しかし、シャットダウン(shutdown.shスクリプトを呼び出す)を実行すると、接続が拒否されたことが示されます。私はこれを試しましたSpringブートアプリケーションがehcacheとともにデプロイされたときにTomcatがシャットダウンしない
Tomcat doesn't stop. How can I debug this?しかし、私の問題は解決しません。私は私の春のブートアプリケーションを削除しようとしており、それは問題なしで正常に動作しています。私はTomcatを開始して停止することができます。それ以降の分析の後、私はそれがスプリングブートアプリケーションで設定されたehacheのためであることがわかりました。 ehcacheのシャットダウンリスナーは、春の起動時にそれを行うための最良の方法は、設定する必要があります。
私もこのオプションを試しました。
How to shutdown a Spring Boot Application in a correct way?
./shutdown.sh
Using CATALINA_BASE: /app/tomcat/myapp
Using CATALINA_HOME: /app/tomcat/myapp
Using CATALINA_TMPDIR: /app/tomcat/myapp/temp
Using JRE_HOME: /usr/java/jdk1.8.0_71
Using CLASSPATH:
/app/tomcat/myapp/bin/bootstrap.jar:/app/tomcat/myapp/bin/tomcat-juli.jar
Oct 18, 2016 5:36:33 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact localhost:8005. Tomcat may not be running.
Oct 18, 2016 5:43:31 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)
。
#-> netstat -anpl|grep -i 8005
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 21668/java
なぜこれが起こっているのかわかりません。なぜこのようなことが起こるのか?なぜシャットダウンポートを聞くことができないのですか?なぜシャットダウンポートが127.0.0.1になったのですか?他のプロセスはそれを持っていないのですか?
は私がポートにTelnetを実行しようとしました、それはtelnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
これが問題になる理由を任意のアイデアを接続しています。
--------更新
私たちは、スタンドアロンとしてehcacheを持つスプリングブートアプリを展開するときにこれが起こっている考え出しました。 ehcacheのシャットダウンフックが呼び出される必要があります....春のブートでそれを行うための最善の方法は何ですか?
サーバーに問題が発生する可能性のあるものはありますか? –
はい、それは春のブートで問題があるように見えます。 – Harry
tomcat embedded!= tomcat。ちょうどtomcatを停止するapplciationをシャットダウンします。 –