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>
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