千家信息网

tomcat服务器宕机怎么办

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章给大家分享的是有关tomcat服务器宕机怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。报错信息:java.lang.Object.wait(Native Me
千家信息网最后更新 2025年02月08日tomcat服务器宕机怎么办

这篇文章给大家分享的是有关tomcat服务器宕机怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

报错信息:

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;@WebListenerpublic class ContextFinalizer implements ServletContextListener {  public void contextInitialized(ServletContextEvent sce) {  }  public void contextDestroyed(ServletContextEvent sce) {    Enumeration 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配置如下内容

   cn.listener.ContextFinalizer 

解决方案可以参考如下网址

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

感谢各位的阅读!关于"tomcat服务器宕机怎么办"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0