报错信息:
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>
解决方案可以参考如下网址
当然还有就是我再参考这个解决方案的时候,发现mysql-connection如果版本过低会导致上述列出的Java代码报错,通过提高mysql-connection.java的版本即可解决该问题
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
任何建议都将不胜感激。 多谢太平绅士
本文向大家介绍hadoop 的 namenode 宕机,怎么解决相关面试题,主要包含被问及hadoop 的 namenode 宕机,怎么解决时的应答技巧和注意事项,需要的朋友参考一下 解答: 先分析宕机后的损失,宕机后直接导致client无法访问,内存中的元数据丢失,但是硬盘中的元数据应该还存在,如果只是节点挂了,重启即可,如果是机器挂了,重启机器后看节点是否能重启,不能重启就要找到原因修复了。但
本文向大家介绍Linux中虚拟机宕机之后解决办法,包括了Linux中虚拟机宕机之后解决办法的使用技巧和注意事项,需要的朋友参考一下 Linux中虚拟机宕机之后解决办法 问题现象 一次意外操作,导致虚拟机无法启动,重启宿主操作系统也无效。 恢复方法 第一步: 删除原来建立的虚拟机。 第二步: 重新建立新虚拟机。 第三步: 在建立虚拟硬盘步骤,选择“使用已有的虚拟硬盘文件”,该文件笔者为G:\vmd
null null Tomcat服务器正在运行servlet,为mySQL数据库执行一些业务逻辑和hibernate框架。 现在我有点糊涂了。两台服务器都能接收HTTP请求吗?就像servlet从网页接收https请求和我的apache服务器一样? 并且两者都可以连接到数据库--使用php的apache服务器,正如我提到的,同时使用servlet的tomcat?
本文向大家介绍Java服务器端跨域问题解决方案,包括了Java服务器端跨域问题解决方案的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了java服务器端跨域问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 现在很多开发的 API 都支持 ajax 直接请求,这样就会导致跨域的问题,解决跨域的问题一方面可以从前端,另一方面就是服
当我在Eclipse中的服务器上运行我的应用程序时,我会得到这样的消息:“Tomcat V8.0服务器在localhost上所需的端口8080已经在使用中。该服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动该服务器,您需要停止其他进程或更改端口号”。其他项目关闭。有人能帮我解决这个问题吗?我是爪哇初学者。