2015-11-12 15 views
9

Gần đây tôi đã nâng cấp một ứng dụng từ java 1.7 lên 1.8. Phần còn lại của các phiên bản thư viện vẫn không thay đổi. Tôi nhận được lỗi sau sau khi nâng cấp:Không thể nhận kết nối db sau khi nâng cấp Java 8

DEBUG 2015-11-12 09:55:12 BasicResourcePool   An exception occurred while acquiring a poolable resource. Will retry. 
java.lang.NullPointerException 
    at oracle.net.jndi.JndiAttrs.getAttrs(JndiAttrs.java:207) 
    at oracle.net.resolver.AddrResolution.<init>(AddrResolution.java:198) 
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:219) 
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) 
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134) 
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182) 
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171) 
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137) 
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014) 
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) 
    at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810) 
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) 

Hibernate cấu hình:

<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
     <property name="hibernate.connection.url">jdbc:oracle:thin:@ldaps://XXXX,cn=OOOO,dc=WWW</property> 
     <property name="hibernate.connection.username">YYYY</property> 
     <property name="hibernate.statement_cache.size">0</property> 
     <property name="hibernate.connection.password">ZZZZZ</property> 
     <property name="hibernate.c3p0.min_size">5</property> 
     <property name="hibernate.c3p0.max_size">20</property> 
     <property name="hibernate.c3p0.timeout">1800</property> 
     <property name="hibernate.c3p0.max_statements">0</property> 
     <property name="hibernate.default_schema">YYYY</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property> 
     <property name="hibernate.show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 

Libraries liên quan được sử dụng:

  • ojdbc6 11.2.0.3.0
  • ngủ đông 3.1

Sự cố: Các phụ thuộc có 2 phiên bản hibernate 3.1 và 3.0 và ojdbc6 và ojdbc7. (Sử dụng mvn dependency:tree -Dverbose để có cây phụ thuộc)

Giải pháp: Không bao gồm các phiên bản khác của hibernate và ojdbc từ sự phụ thuộc.

  <dependency> 
       <groupId>****</groupId> 
       <artifactId>****</artifactId> 
       <version>****</version> 
       <exclusions> 
        <exclusion> 
         <groupId>hibernate</groupId> 
         <artifactId>hibernate</artifactId> 
        </exclusion> 
        <exclusion> 
         <groupId>com.oracle</groupId> 
         <artifactId>ojdbc6</artifactId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
+0

có thể liên quan nếu bạn sử dụng phân phối Linux http://stackoverflow.com/questions/ 26227344/oracle-java-8-x64-cho-linux-và-randomsource – VirtualTroll

Trả lời

3

Như tôi có thể nhìn thấy từ Oracle FAQ, người lái xe jdbc bạn đang sử dụng không tương thích với các phiên bản và JDK8 Database.

Phiên bản cơ sở dữ liệu Oracle được hỗ trợ khác với phiên bản tuân thủ JDBC và phiên bản JDK được hỗ trợ là gì? enter image description here

Tôi nghĩ đây phải là vấn đề của bạn. Có lẽ nếu bạn sử dụng ojdbc7.jar có thể giúp (không chắc chắn về nguyên nhân này tôi chưa thử nghiệm nó - QUÝ VỊ TRẢ LỜI NÀY CÓ THỂ NÀO)

+0

Tôi đang sử dụng phiên bản JDK8, ojdbc7 12.1 và Oracle Db là 12.1 nhưng vẫn gặp phải vấn đề tương tự. –

Các vấn đề liên quan