我有一个play 2.1应用程序,我正在使用junit进行单元测试。我的测试运行良好,并且能够执行他们的数据库操作。显然驱动程序(org.postgresql.Driver
)已加载。没有找到合适的连接池驱动程序
但是,在测试之间,看起来连接池无法访问驱动程序。以下是我日志中典型序列的摘录。有谁知道为什么连接池在应用程序没问题时可能无法访问驱动程序?
[info] application - QuickWitness Server shutdown...
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 10. Exception: null
[error] c.j.b.ConnectionHandle - Database access problem. Killing off all remaining connections in the connection pool. SQL State = 08001
[error] c.j.b.PoolWatchThread - Error in trying to obtain a connection. Retrying in 1000ms
java.sql.SQLException: No suitable driver found for jdbc:postgresql:qw
at java.sql.DriverManager.getConnection(DriverManager.java:602) ~[na:1.6.0_26]
at java.sql.DriverManager.getConnection(DriverManager.java:185) ~[na:1.6.0_26]
at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:256) ~[bonecp.jar:0.7.1.RELEASE]
at com.jolbox.bonecp.ConnectionHandle.obtainInternalConnection(ConnectionHandle.java:211) ~[bonecp.jar:0.7.1.RELEASE]
at com.jolbox.bonecp.ConnectionHandle.<init>(ConnectionHandle.java:170) ~[bonecp.jar:0.7.1.RELEASE]
at com.jolbox.bonecp.PoolWatchThread.fillConnections(PoolWatchThread.java:101) [bonecp.jar:0.7.1.RELEASE]
[info] application - QuickWitness Server has started
[debug] application - entering ensureTriggersAndStoredProceduresAreInstalled()
[debug] application - exiting ensureTriggersAndStoredProceduresAreInstalled()
[info] application - logging initialized
[info] application - Register user request from localhost:12345
[info] application - QuickWitness Server shutdown...
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 10. Exception: null
[error] c.j.b.ConnectionHandle - Database access problem. Killing off all remaining connections in the connection pool. SQL State = 08001
[error] c.j.b.PoolWatchThread - Error in trying to obtain a connection. Retrying in 1000ms
java.sql.SQLException: No suitable driver found for jdbc:postgresql:qw
at java.sql.DriverManager.getConnection(DriverManager.java:602) ~[na:1.6.0_26]
at java.sql.DriverManager.getConnection(DriverManager.java:185) ~[na:1.6.0_26]
at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:256) ~[bonecp.jar:0.7.1.RELEASE]
at com.jolbox.bonecp.ConnectionHandle.obtainInternalConnection(ConnectionHandle.java:211) ~[bonecp.jar:0.7.1.RELEASE]
at com.jolbox.bonecp.ConnectionHandle.<init>(ConnectionHandle.java:170) ~[bonecp.jar:0.7.1.RELEASE]
at com.jolbox.bonecp.PoolWatchThread.fillConnections(PoolWatchThread.java:101) [bonecp.jar:0.7.1.RELEASE]
[info] application - QuickWitness Server has started
那么在Play环境中运行时,您是如何使驱动程序可用的? – 2013-03-02 14:56:25
我在application.conf文件中指定了驱动程序的名称: db.default.driver = org.postgresql.Driver 驱动程序的jar在类路径中。 – user2102276 2013-03-04 00:57:44
你确定*它在类路径中吗?你怎么把它放在类路径中?我怀疑这就是问题所在。 – 2013-03-04 07:37:21