Попытка подключить наш драйвер к пулу подключений - PullRequest
0 голосов
/ 29 мая 2018

В основном моя проблема в том, что я пытаюсь включить пул соединений в свое приложение.В моем классе подключения к базе данных мы установили все различные свойства для свойств пула.

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());     

Когда мы запускаем его на нашем интерфейсе SOAP, он по-прежнему возвращает мне информацию из нашей базы данных, которую мы хотим.Однако я все еще получаю сообщение об ошибке консоли:

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)     

Я не совсем уверен, в чем именно проблема.Я думаю, что пул соединений не успешно соединяется с драйвером

1 Ответ

0 голосов
/ 29 мая 2018

Я вижу, что вы используете tomcat, так как вы используете конфигурацию пула tomcat jdbc.

Драйвер JDBC должен быть виден тому же загрузчику классов, что и сама фабрика источников данных.Библиотека фабрики источников данных помещается в собственную папку Tomcat / lib и, таким образом, загружается «общим» загрузчиком классов Tomcat.

Ваша проблема звучит так, будто вы выбросили драйвер JDBC в папку библиотеки приложения, которая невидима для«обычный» загрузчик классов.Технически, вы должны поместить драйвер JDBC в собственную папку / lib Tomcat (или, по крайней мере, в настраиваемый путь, указанный параметром common.loader в /conf/catalina.properties), чтобы сделать его видимым для данных.Исходная фабрика.

...