Java c3p0-不同服务器的连接池查询

Java c3p0-不同服务器的连接池查询,java,maven,tomcat,connection-pooling,c3p0,Java,Maven,Tomcat,Connection Pooling,C3p0,我已经用java创建了一个mavenized web应用程序。如果使用maven jetty插件运行web应用程序,则可以从连接池初始化数据源,也可以从数据源获取连接。但是,当我在tomcat服务器上部署应用程序时,它能够初始化数据源,但在尝试获取连接时抛出异常: java.sql.SQLException: Connections could not be acquired from the underlying database! at com.mchange.v2.sql.SqlUtils

我已经用java创建了一个mavenized web应用程序。如果使用maven jetty插件运行web应用程序,则可以从连接池初始化数据源,也可以从数据源获取连接。但是,当我在tomcat服务器上部署应用程序时,它能够初始化数据源,但在尝试获取连接时抛出异常:

java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
即使我已经在server.xml中更改了web.xml中的resources和resources ref,但仍然无法获得连接

**Server.xml**
<Resource name="jdbc/sample" auth="Container"
 driverClassName="oracle.jdbc.driver.OracleDriver"
 url="jdbc:oracle:thin:@someServer:1551:xyz"
 username="userName"
 password="pwd"
 validationQuery="SELECT 1 FROM dual"
 testOnBorrow="true"
 testWhileIdle="true"
 factory="org.apache.naming.factory.BeanFactory" 
 type="com.mchange.v2.c3p0.ComboPooledDataSource" 
 maxPoolSize="20" 
 minPoolSize="5" 
 acquireIncrement="1" 
/>

**web.xml**
<resource-ref>
  <res-ref-name>jdbc/sample</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref> 
**Server.xml**
**web.xml**
jdbc/示例
javax.sql.DataSource
容器

在tomcat服务器上运行应用程序时,我在这个场景中缺少了什么

您在数据源上设置的属性不是c3p0 ComboPooledDataSource的属性。例如,您设置了一个名为
username
的属性。ComboPooledDataSource属性是
user
validationQuery
应该是
preferredTestQuery
testOnBorrow
应该是
testConnectionOnCheckout
testWhileIdle
映射到使用非零的
idleConnectionTestPeriod

有关的完整信息,请参阅