C3P0连接池jetty下正常,tomcat下报错

背景:使用c3p0连接池,jetty下正常,发布到tomcat报如下错误,最后排查是因为没配置driverClass

报错如下:

[WARN]-[Thread: Task-Thread-for-com.mchange.v2.async.ThreadPerTaskAsynchronousRunner@2547fcd8]-[com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run()]: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@108445f1 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:278)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)

代码如下:

public static C3p0Plugin createC3p0Plugin() {
    PropKit.use("config");
    C3p0Plugin cp = new C3p0Plugin(PropKit.get("jdbc.url"),
    PropKit.get("jdbc.username"), PropKit.get("jdbc.password"),
        PropKit.get("jdbc.driverClassName") ); // 使用C3P0
    return cp;
}

如上错误因为未配置PropKit.get(“jdbc.driverClassName”) 导致,但jetty下正常,很诡异,记录一下。

猜你喜欢

转载自blog.csdn.net/hechaojie_com/article/details/82731230