<div id="article_content" class="article_content"> <p>以下是错误日志信息:</p> <p>严重: The web application [/news] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.<br /> 2014-12-19 0:27:47 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br /> 严重: The web application [/news] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->1pyjusp96q571f188m8|18782a7]-AdminTaskTimer] <span style="color:#FF0000">but has failed to stop it. This is very likely to create a memory leak.</span><br /> 2014-12-19 0:27:47 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br /> 严重: The web application [/news] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->1pyjusp96q571f188m8|18782a7]-<span style="color:#FF0000">HelperThread-#0] but has failed to stop it. This is very likely to create a memory leak.</span><br /> 2014-12-19 0:27:47 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br /> 严重: The web application [/news] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->1pyjusp96q571f188m8|18782a7]-<span style="color:#FF0000">HelperThread-#1] but has failed to stop it. This is very likely to create a memory leak.</span><br /> 2014-12-19 0:27:47 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br /> 严重: The web application [/news] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->1pyjusp96q571f188m8|18782a7]-<span style="color:#FF0000">HelperThread-#2] but has failed to stop it. This is very likely to create a memory leak.</span></p> <p><br /></p> <p>堆栈信息:</p> <p>Exception in thread "C3P0PooledConnectionPoolManager[identityToken->1pyjusp96q571f188m8|18782a7]-AdminTaskTimer" java.lang.NullPointerException<br /> at com.mchange.v2.log.log4j.Log4jMLog$Log4jMLogger.isLoggable(Log4jMLog.java:293)<br /> at com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector.run(ThreadPoolAsynchronousRunner.java:729)<br /> at java.util.TimerThread.mainLoop(Timer.java:512)<br /> at java.util.TimerThread.run(Timer.java:462)</p> <p><br /></p> <p><br /></p> <p>我的情况是在配置数据源时未配置销毁dataSource对象时执行close方法关闭连接</p> <p></p><pre name="code" class="html"> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" > <property name="driverClass" value="${driverClass}"></property> <property name="jdbcUrl" value="${jdbcUrl}"></property> <property name="user" value="${user}"></property> <property name="password" value="${password}"></property> <property name="initialPoolSize" value="1"></property> <property name="minPoolSize" value="1"></property> <property name="maxPoolSize" value="20"></property> <property name="maxIdleTime" value="60"></property> </bean></pre><br /><pre name="code" class="html"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" > 在这里面加入destroy-method="close"</pre><br /></div>