您现在的位置是:首页 > 文章详情

tomcat服务器宕机解决方案

日期:2018-07-08点击:534

报错信息:

 java.lang.Object.wait(Native Method)

 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)

 com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)

每次出现这个报错都会导致tomcat应用服务器停机,加了下面的java代码后就再也没有停过了。

解决办法:

编写Java代码

package cn.listener; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Enumeration; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import com.mysql.jdbc.AbandonedConnectionCleanupThread; @WebListener public class ContextFinalizer implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { } public void contextDestroyed(ServletContextEvent sce) { Enumeration<Driver> drivers = DriverManager.getDrivers(); Driver d = null; while (drivers.hasMoreElements()) { try { d = drivers.nextElement(); DriverManager.deregisterDriver(d); System.out.println(String.format("ContextFinalizer:Driver %s deregistered", d)); } catch (SQLException ex) { System.out.println(String.format("ContextFinalizer:Error deregistering driver %s", d) + ":" + ex); } } try { AbandonedConnectionCleanupThread.shutdown(); } catch (InterruptedException e) { System.out.println("ContextFinalizer:SEVERE problem cleaning up: " + e.getMessage()); e.printStackTrace(); } } }

 

@WebListener,这个注解相当于在web.xml配置如下内容
 <listener> <listener-class>cn.listener.ContextFinalizer</listener-class> </listener>

 

 

解决方案可以参考如下网址:https://stackoverflow.com/questions/25699985/the-web-application-appears-to-have-started-a-thread-named-abandoned-connect

 

当然还有就是我再参考这个解决方案的时候,发现mysql-connection如果版本过低会导致上述列出的Java代码报错,通过提高mysql-connection.java的版本即可解决该问题

 

原文链接:https://yq.aliyun.com/articles/645163
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章