java - Hibernate 没有匹配的认证协议(protocol)

标签 java hibernate oracle10g oracle12c ojdbc

最初我们使用的是 Oracle 11g 数据库。现在我们想升级到 12c 数据库,而在此迁移的测试阶段,我们在使用 hibernate 连接到数据库时遇到问题,因为我们收到“没有匹配的身份验证协议(protocol)”错误。

我在所有论坛上都试过了,每个人都建议将 ojdbc14 jar 升级到 ojdbc6 jar。

但是我们在我的项目中没有使用 ojdbc14 jar。

我们主要使用 com.springsource jar 。

最佳答案

我认为您看到了解决方法,其中指出 SQLNET.ALLOWED_LOGON_VERSION 应设置为 8,这意味着允许旧版客户端连接。我不认为这是个好主意。你应该更新你的驱动程序你可以得到它here .

要查找 jar 库,请尝试在您的 IDE 中搜索类 oracle.jdbc.driver.OracleDriver

只有当您无法将您的解决方案升级到 Java 7 或 8 时,才尝试执行该解决方法。

解决方法 - 使用以下参数在/network/admin 位置创建一个 sqlnet.ora:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

Oracle documentation

让我们稍微澄清一下 SpringJ2EE 的轻量级替代品。 Spring 的目标是帮助以更好的方式构建整个应用程序,通过将同类最佳的单层框架组合在一起以创建连贯的体系结构,从而使其更加一致。

你插入了你的应用 Hibernate 这是 ORM (Object-Relational M apping) 框架,用于将面向对象的域模型映射到关系数据库。

Hibernate 初始化JDBC (Java DataBase Connectivity 这是 java 的 API,它定义了客户端如何访问数据库)可以配置的连接:

  1. 独立配置您将使用内部配置的驱动程序 应用程序。
  2. Datasource connection 通过 JNDI 然后所有的数据库驱动和 配置在应用程序服务器端 Hibernate 用户 JNDI 名称 连接。

如果您不确定请添加您的 Hibernate 配置,请分享您使用的是哪种配置?

关于java - Hibernate 没有匹配的认证协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42855167/

相关文章:

plsql - Oracle PL/SQL 中用于存储行的数组

oracle - oracle 在哪里存储我的对象实例?

java - Intellij 不包含构建中的每个文件

java - 在继承状态层次结构中找不到声明的类 : UserAccount

java - 避免类型转换的更好方法?

java - Hibernate映射问题: Multiple Embeddables + ElementCollections

java - 玩! Framework JPA [RuntimeException : No EntityManager bound to this thread. Try to annotate your action method with @play.db.jpa.Transactional]

sql - 选择Oracle中某个类型的所有索引

java - Android 上的最佳方式或类似的 lambda 表达式或 linq(eclipse)

java - 无法解决 'Type argument is not within bounds of type-variable' 错误