[英]Tomcat not shutting down when Spring boot app is deployed with ehcache
我對tomcat有一個奇怪的問題,我在tomcat上部署了一個Spring Boot應用程序(未單獨站立)。 我能夠成功啟動tomcat,並且在沒有任何問題的情況下都能正常工作。 但是,當我運行shutdown(調用shutdown.sh腳本)時,它顯示連接被拒絕。 我已經嘗試過了
Tomcat不會停止。 我該如何調試? ,但不能解決我的問題。 我試着刪除我的spring boot應用程序,它運行正常,沒有任何問題。 我能夠啟動和停止tomcat。 經過進一步分析,我發現這是因為在Spring Boot應用程序中配置了ehache。 需要配置ehcache的關閉偵聽器,這是在Spring Boot中執行此操作的最佳方法。
我也嘗試過此選項。
./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獨立部署為spring boot應用程序時,這種情況正在發生。 必須調用ehcache shutdown鈎子。...在春季啟動時執行此操作的最佳方法是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.