Настроить пул соединений на основе DBCP для взаимодействия с oracle db - PullRequest
1 голос
/ 02 ноября 2011

Я пытаюсь запустить этот пример http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/doc/PoolingDataSourceExample.java?view=markup, но почему-то я не могу это сделать. И я хочу запустить этот пример в проекте maven, а также впервые работаю над проектом maven. И я не уверен, как мне это сделать. Как и в этом примере, ясно сказано, что -

To compile this example, you'll want:
  * commons-pool-1.5.4.jar
  * commons-dbcp-1.2.2.jar
  * j2ee.jar (for the javax.sql classes)
 in your classpath.

 To run this example, you'll want:
  * commons-pool-1.5.6.jar
  * commons-dbcp-1.3.jar (JDK 1.4-1.5) or commons-dbcp-1.4 (JDK 1.6+)
  * j2ee.jar (for the javax.sql classes)
  * the classes for your (underlying) JDBC driver
 in your classpath.

Поэтому я попытался добавить все эти зависимости в мой файл pom.xml после просмотра различных статей. Но все равно у меня ошибка вроде -

ConnectionFactory cannot be resolved to a type  
GenericObjectPool cannot be resolved to a type  
ObjectPool cannot be resolved to a type 
PoolableConnectionFactory cannot be resolved to a type  
PoolableConnectionFactory cannot be resolved to a type  
PoolingDataSource cannot be resolved to a type  
PoolingDataSource cannot be resolved to a type  

И это мой файл pom.xml. Есть ли что-то, что мне не хватает в моем файле pom.xml. Будем благодарны за любые предложения, так как это мой первый проект с Maven.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.datasource.pooling</groupId>
  <artifactId>datasource.pooling</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>com.datasource.pooling</name>




  <dependencies>

  <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0</version>
        </dependency>


<dependency>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</artifactId>
      <version>1.5.4</version>
    </dependency>

    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.2.2</version>
    </dependency>
<!--  
<dependency>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</artifactId>
      <version>1.5.6</version>
    </dependency>

    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.3</version>
    </dependency>
 -->

  </dependencies>
</project>

Какова зависимость для добавления файла j2ee.jar.

1 Ответ

3 голосов
/ 19 ноября 2011

Классы ConnectionFactory, GenericObjectPool, ObjectPool, PoolableConnectionFactory, PoolingDataSource можно найти в jars commons-pool- {version} .jar и commons-dbcp- {version} .jar.

В этом случае вам не нужно добавлять j2ee.jar.Классы, связанные с пакетом javax.sql, находятся внутри rt.jar, который устанавливается по умолчанию в .Код (http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/doc/PoolingDataSourceExample.java?view=markup), который вы должны запустить, импортирует классы из пакета org.apache.commons.dbcp2 и org.apache.commons.pool2

import org.apache.commons.pool2.ObjectPool; 
import org.apache.commons.pool2.impl.GenericObjectPool;      
import org.apache.commons.dbcp2.ConnectionFactory;   
import org.apache.commons.dbcp2.PoolingDataSource;   
import org.apache.commons.dbcp2.PoolableConnectionFactory;   
import org.apache.commons.dbcp2.DriverManagerConnectionFactory;

, вместо этого используйте

import org.apache.commons.pool.ObjectPool; 
import org.apache.commons.pool.impl.GenericObjectPool;   
import org.apache.commons.dbcp.ConnectionFactory;    
import org.apache.commons.dbcp.PoolingDataSource;    
import org.apache.commons.dbcp.PoolableConnectionFactory;    
import org.apache.commons.dbcp.DriverManagerConnectionFactory;

, используйте org.apache.commons.pool вместоorg.apache.commons.pool2 из всех импортируемых пакетов. Эти классы находятся внутри commons-pool- {version} .jar и commons-dbcp- {version} .jar jars.

...