Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从8u144更新Java后无法使用ojdbc8连接到Oracle DB-8u171之后(包括8u171)的任何更新_Java_Oracle_Jdbc_Java 8_Ojdbc - Fatal编程技术网

从8u144更新Java后无法使用ojdbc8连接到Oracle DB-8u171之后(包括8u171)的任何更新

从8u144更新Java后无法使用ojdbc8连接到Oracle DB-8u171之后(包括8u171)的任何更新,java,oracle,jdbc,java-8,ojdbc,Java,Oracle,Jdbc,Java 8,Ojdbc,我一直在尝试升级使用ojdbc8连接到Oracle 12.2数据库的应用程序中使用的Java版本(目前为8u144)。我最近更新到8u201的尝试失败,错误如下: Exception in thread "main" java.lang.NullPointerException at oracle.net.jndi.JndiAttrs.getAttrs(JndiAttrs.java:215) at oracle.net.resolver.AddrResolution.<init>(A

我一直在尝试升级使用ojdbc8连接到Oracle 12.2数据库的应用程序中使用的Java版本(目前为8u144)。我最近更新到8u201的尝试失败,错误如下:

Exception in thread "main" java.lang.NullPointerException
at oracle.net.jndi.JndiAttrs.getAttrs(JndiAttrs.java:215)
at oracle.net.resolver.AddrResolution.<init>(AddrResolution.java:237)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:233)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1438)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:518)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:691)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:384)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:273)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:198)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:176)
at Main.main(Main.java:22)
虽然我的问题与下面的问题类似,但我没有使用Hibernate,而且这个问题似乎没有真正回答/解决潜在的问题

为了简化一切,我将我的测试简化为一个简单的项目,只使用ojdbc8和类似以下内容:

"jdbc:oracle:thin:@ldaps://ldap.example.com:7777/sales,cn=OracleContext,dc=com"
    String url = "jdbc:oracle:thin:@ldaps://....";
    OracleDataSource ods = new OracleDataSource();
    ods.setUser("indiana");
    ods.setPassword("thedoctor");
    ods.setURL(url);

    Connection conn = ods.getConnection();
    PreparedStatement st = conn.prepareStatement("select * from world where temple = 'doom'");

    ResultSet rs = st.executeQuery();
    while(rs.next()) {
        System.out.println(rs.getString("last"));
    }
如果我使用完全相同的代码和配置将Java切换到8u144,上面的工作就很好。我不知所措


更新我已经缩小了问题的范围,并发现中断发生在Java 8u171上。我正在查看该版本的发行说明以及我现在可以找到的任何其他内容。

看起来在创建LDAPS连接时SSL握手失败。 使用java net调试选项运行测试程序将有助于分析问题。 添加此选项-Djavax.net.debug=all以运行测试程序,调试输出将包含SSL调试日志,这将有助于确定原因。JDK 8u171有一些与安全相关的更改


(SSL调试::)

您是否尝试查看这些更新的发行说明以查看是否进行了任何更改?谢谢您的建议。经过更多的测试,我已经将问题缩小到8u171发生的中断。我现在正在看那些发行说明。这可能是JDK的错误。出于好奇,您尝试过JDK11吗?我没有。在任何情况下,我都不确定我是否可以切换到这个应用程序。您使用的是哪个版本的Oracle JDBC驱动程序(ojdbc8只是表示它是针对Java 8的,并不表示具体的版本)?