ORA-28040:没有匹配的身份验证协议:Oracle 12c 升级

Tus*_*har 5 oracle11g struts-1 java-5 ojdbc oracle12c

我们已将 Oracle 数据库从 11g 迁移到 12c。我们有一个在 Java 1.5 中运行并使用 ojdbc14.jar 的遗留应用程序。

我们的应用程序无法创建到数据库的连接错误说:

java.sql.SQLException: ORA-28040: No matching authentication protocol
Run Code Online (Sandbox Code Playgroud)

我建议回答ORA-28040: No matching authentication protocol exception,并尝试将我的 ojdbc14.jar 升级到 ojdbc6.jar。

我现在有一条不同的错误消息说:

  error: OracleCallableStatement is not public in oracle.jdbc.driver; cannot be accessed from outside package
import oracle.jdbc.driver.OracleCallableStatement;
                          ^
error: OracleTypes is not public in oracle.jdbc.driver; cannot be accessed from outside package
            cstmt.registerOutParameter(3,oracle.jdbc.driver.OracleTypes.CURSOR);
                                           ^
Run Code Online (Sandbox Code Playgroud)

蚂蚁构建文件:

<javac srcdir="${src}" destdir="${classes}" source="1.5" target="1.5">
            <classpath refid="cpath" />
</javac>
Run Code Online (Sandbox Code Playgroud)

不确定我们应该做什么才能使应用程序正常工作。

VC1*_*VC1 5

我最近在 2 个不同的应用程序中遇到了同样的错误:

  1. Tomcat 7 上的 Java 7 应用程序,使用 odbc6.jar 和 Oracle 12 c 数据库。
  2. 带有 Oracle 12 c 数据库的旧式 ASP 应用程序。

您提到同一篇文章中提到的第二个解决方案 对我们来说效果很好。

解决方法:在 oracle/network/admin/sqlnet.ora 文件中设置 SQLNET.ALLOWED_LOGON_VERSION=8。

我们与 DBA 一起在数据库服务器上的 sqlnet.ora 上设置了上述选项。这解决了我们的问题。我希望它可以帮助某人。