先贴出来异常的部分代码:
java.lang.Exception: DEBUG STACK TRACE for PoolBackedDataSource.close().
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.close(AbstractPoolBackedDataSource.java:417)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
......
java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:566)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
.....
具体到这个问题里,就是来自Spring关于数据源的那个配置文件。
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
//略去数据源相关信息的配置
</bean>
Spring在读取这个配置文件以后,需要根据这些信息来实例化一些类,然后内部再根据中间的那些配置信息来实际构造数据源。
可是来了个问题。不能保证这里的ComboPooledDataSource数据源一定是可用的,也不能保证close方法一定能关闭连接,对吧?Spring本身不能检查这个类是否真实有效,毫无Bug。实际上呢,也检查不了。同样的,close方法是否有效,也需要进行检查。
java.sql.Connection
public interface Connection extends Wrapper
任何一个JDBC数据库连接的实现类都应该实现这个接口的全部方法。比如,close。API里的描述是,立即释放此
Connection
对象的数据库和 JDBC
资源,而不是等待它们被自动释放。
虽然API规定了close是关闭连接释放资源的。但这只是你接口的一厢情愿。也许人家实现厂家觉得close方法不够帅,要改成closeConnection。那。。。Spring总不好傻傻的去死扣close方法来关闭连接吧?虽然这方法必须实现,但是可没说一定要有内容啊。如果是空方法呢?所以有了destroy-method这个配置项的出现。
总结:
当不能确定destory-method的情况下,把该项删除,由程序自主选择关闭方法,这样Debug就不会报错了.
分享到:
相关推荐
设置log4j的根目录,值为 日志等级(DEBUG,INFO,WARN,ERROR,FATAL) , 输出目标名称 log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出...
log4j(内含log4j的jar包和log4j的配置文件:有DEBUG和INFO两种) 拿出来共享下、
关于eclipse 中debug 和 log4j
Log4j2实现不同线程不同级别日志输出到不同的文件中 源码+log4j jar包
Eclipse调试方法及log4j调试方法Eclipse调试方法及log4j调试方法
注意需要相应的log4j包
log4j错误打印到控制台 并且输出sql语句
通过Log4j输出日志到数据库表中,有表的创建sql,是完整的一套代码,可以直接运行。
如果是maven本地仓库使用,需要将zip包解压到maven资源库的/org/apache/logging/log4j下 log4j严重漏洞 log4j logging-log4j2-log4j-2.15.0-rc2 log4j-1.2-api-2.15.0.jar log4j-api-2.15.0.jar log4j-core-2.15.0....
Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...
设置log4j的根目录,值为 日志等级(DEBUG,INFO,WARN,ERROR,FATAL) , 输出目标名称 log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出...
log4j详解-信息输出到文件或控制台 log4j详解-信息输出到文件或控制台
log4j 配置 输出日志到控制台 到文件 代码及案例方便学习
根据项目需要,要求日志文件名及输出的日志内容头为特殊的格式,因此重写了log4j的一些方法,如要求的格式和项目不同,可根据示例参考进行再次的修改
一直在使用log4j。输出到文件的方式配置log4j。 这是一个最简单的实现上述功能的eclipse工程。
log4j.rootLogger=debug,CONSOLE,testfile,A1,MAIL ################### # Console Appender ################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=...
apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...
NULL 博文链接:https://wwwiteye.iteye.com/blog/1985170
本工程以一个简单的log4j示例演示了log4j的使用方法 本工程编码方式:UTF-8 本工程开发工具:MyEclipse 说明:log4j详细使用方法请参考博客:http://blog.csdn.net/gaohuanjie/article/details/44077551