gpt4 book ai didi

java - Java 8 升级后无法获得数据库连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:24:14 27 4
gpt4 key购买 nike

我最近将应用程序从 Java 1.7 升级到 1.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 配置:

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

使用的相关库:

  • ojdbc6 11.2.0.3.0
  • hibernate 3.1

问题:依赖项包含 2 个 hibernate 版本 3.1 和 3.0 以及 ojdbc6 和 ojdbc7。 (使用 mvn dependency:tree -Dverbose 获取依赖树)

解决方案:从依赖项中排除了其他版本的 hibernate 和 ojdbc。

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

最佳答案

正如我从 Oracle FAQ 中看到的那样,您正在使用的 jdbc 驱动程序与数据库版本和 JDK8 不兼容。

What are the various supported Oracle database version vs JDBC compliant versions vs JDK version supported? enter image description here

我想这一定是你的问题。也许如果你使用 ojdbc7.jar 可能会有帮助(不确定这个原因我还没有测试过 - 很可能这会失败)

关于java - Java 8 升级后无法获得数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33676040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com