[英]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.