Java 正在尝试将驱动程序连接到连接池

Java 正在尝试将驱动程序连接到连接池,java,database,spring,connection,connection-pooling,Java,Database,Spring,Connection,Connection Pooling,基本上,我的问题是我试图将连接池合并到我的应用程序中。在我的数据库连接类中,我们为池属性设置了所有不同的属性 public static Connection getConnection() { try { PoolProperties poolProperties = new PoolProperties(); String url = prop.getUrl(); String drivername = prop.getDr

基本上,我的问题是我试图将连接池合并到我的应用程序中。在我的数据库连接类中,我们为池属性设置了所有不同的属性

public static Connection getConnection() {

    try { 

        PoolProperties poolProperties = new PoolProperties();



        String url = prop.getUrl();
        String drivername = prop.getDriverClassName();
        String username = prop.getUsername();
        String password = prop.getPassword();
        conn = DriverManager.getConnection(url, username, password);




        poolProperties.setUrl(url);
        poolProperties.setDriverClassName(drivername);
        poolProperties.setUsername(username);
        poolProperties.setPassword(password);

        poolProperties.setMaxActive(MAX_ACTIVE);
        poolProperties.setMaxIdle(MAX_IDLE);
        poolProperties.setMinIdle(MIN_IDLE);
        poolProperties.setInitialSize(MIN_POOL_SIZE);
        poolProperties.setMaxWait(MAX_WAIT);
        poolProperties.setRemoveAbandonedTimeout(REMOVE_ABANDONED_TIMEOUT);
        poolProperties.setMinEvictableIdleTimeMillis(MIN_EVICTABLE_IDLE_TIMEMILLIS);
        poolProperties.setValidationQuery(Validation_Query);
        poolProperties.setValidationInterval(VALIDATION_INTERVAL);
        poolProperties.setTimeBetweenEvictionRunsMillis(TIME_BETWEEN_EVICTION_RUNS_MILLTS);
        DataSource datasource = new org.apache.tomcat.jdbc.pool.DataSource();

         ((org.apache.tomcat.jdbc.pool.DataSource) datasource).setPoolProperties(poolProperties);
          datasource.createPool();



         logger.info("The connection is from" + prop.getDriverClassName());     
当我们在soapui上运行它时,它仍然会从数据库中返回我们想要的信息。然而,我仍然在控制台上得到一个错误,如下所示

java.sql.SQLException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:702)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:634)
at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:488)
at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:144)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)     
java.sql.SQLException:com.microsoft.jdbc.sqlserver.SQLServerDriver
位于org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
位于org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
位于org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:702)
位于org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:634)
位于org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:488)
位于org.apache.tomcat.jdbc.pool.ConnectionPool.(ConnectionPool.java:144)
位于org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)
位于org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)

我不太清楚到底是什么问题。我认为连接池没有成功地连接到驱动程序

我看到您使用的是tomcat,因为您使用的是tomcat jdbc池配置

JDBC驱动程序必须对与数据相同的类加载器可见 源工厂本身。数据源工厂库位于 Tomcat自己的/lib文件夹,因此由Tomcat的“common”加载 类加载器

您的问题听起来很像是您将JDBC驱动程序丢弃在了您的应用程序中 “公用”不可见的应用程序库文件夹 类加载器。因此,从技术上讲,您必须将JDBC驱动程序放在 Tomcat自己的/lib文件夹(或者至少在可配置的路径中,如 由中的/conf/catalina.properties)中的common.loader设置指定 以使其对数据源工厂可见


您的应用程序是否在tomcat中运行?如何访问tomcat的/lib文件夹以将JDBC驱动程序放在其中?您如何部署应用程序?您没有在tomcat中部署它吗?是的,我们正在tomcatok中部署。您需要将jdbc驱动程序jar放到tomcat/lib文件夹中,然后再次尝试运行它。是的,我在tomcat/lib中添加了tomcat jdbc jar,我们仍然遇到同样的问题