1
我是一个java编程的新手,我正在努力学习。Java连接池与BoneCP奇怪的错误
我有一个数据库MySQL和我管理与连接池的连接,BoneCP是我使用的库。
用于创建池的代码是这样的:
BoneCPConfig config = new BoneCPConfig(); // create a new configuration object
config.setJdbcUrl( R.database.url + R.database.dbName); // set the JDBC url
config.setUsername(R.database.userName); // set the username
config.setPassword(R.database.password); // set the password
config.setMinConnectionsPerPartition(2);
config.setMaxConnectionsPerPartition(5);
config.setPartitionCount(3);
try{
connectionPool = new BoneCP(config); // setup the connection pool
}catch(Exception e){
System.out.println(e);
}
当我需要发送请求的连接DB I赶上这一行代码的连接: 康恩= R.database.connectionPool.getConnection ();
我认为在这一点上都可以,我没有任何错误。
一分钟后,控制台这样说:
[BoneCP-pool-watch-thread] ERROR com.jolbox.bonecp.BoneCP - Failed to acquire connection to jdbc:mysql://localhost:3306/test_db. Sleeping for 7000 ms. Attempts left: 0
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test_db
at java.sql.DriverManager.getConnection(DriverManager.java:596)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:363)
at com.jolbox.bonecp.BoneCP.obtainInternalConnection(BoneCP.java:269)
at com.jolbox.bonecp.ConnectionHandle.<init>(ConnectionHandle.java:242)
at com.jolbox.bonecp.PoolWatchThread.fillConnections(PoolWatchThread.java:115)
at com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:82)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
[BoneCP-pool-watch-thread] ERROR com.jolbox.bonecp.CustomThreadFactory - Uncaught Exception in thread BoneCP-pool-watch-thread
java.lang.NoClassDefFoundError: com/jolbox/bonecp/hooks/ConnectionState
at com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:382)
at com.jolbox.bonecp.ConnectionHandle.<init>(ConnectionHandle.java:244)
at com.jolbox.bonecp.PoolWatchThread.fillConnections(PoolWatchThread.java:115)
at com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:82)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
这是奇怪的问题!
非常感谢!
你好,非常感谢你的回答。我已经在项目的类路径中安装了这个库,并且我能够查询数据库......这个错误是在几分钟的不活动之后调用的,但是我可以再次重新连接到数据库而没有问题。问题是这个问题的原因是什么! XD –
当我重新部署项目时,我得到了:SEVERE:Web应用程序[/ tom]似乎已经启动了一个名为[BoneCP-pool-watch-thread]的线程,但未能阻止它。这很可能造成内存泄漏。 2013年11月28日上午9点26分49秒org.apache.catalina.core.ApplicationContext日志 –