【问题标题】:java.sql.SQLException: ORA-28040: No matching authentication protocoljava.sql.SQLException: ORA-28040: 没有匹配的身份验证协议
【发布时间】:2018-02-16 17:46:58
【问题描述】:

我的应用程序使用 JSF Primefaces 5.0、JDK 7、Oracle Database 12、Tomcat 8。 当我在集成的 Tomcat 8 服务器上从 Eclipse 中部署我的 webapp 战争时,它工作正常(所有这些都发生在 Maven 构建上)。但是,当我在 Eclipse IDE 之外的 Tomcat 8 服务器(使用 Tomcat 管理器部署 UI)上手动部署相同的战争时,出现以下错误。感谢您对此问题的任何提示。

异常 [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException 内部异常: java.sql.SQLException: ORA-28040: 没有匹配的身份验证协议错误代码:28040

我的persistance.xml文件如下

<persistence-unit name="myPU" transaction-type="RESOURCE_LOCAL">       <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>com.myco.jpa.Agents</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
        <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@DBNC-01.MYCO.COM:1521/SCD.MYCO.COM"/>
        <property name="javax.persistence.jdbc.user" value="myname"/>
        <property name="javax.persistence.jdbc.password" value="mypw"/>
    </properties>
</persistence-unit>

【问题讨论】:

  • 我的persistance.xml文件如下
  • 您(以及投票的人)能否请您解释一下为什么您认为这与 jsf、primefaces 和 tomcat 相关,而 jpa 或 eclipselink?
  • 您可能正在使用和过时的 JDBC 驱动程序,并且 URL 应该是 jdbc:oracle:thin:@//DBNC-01.MYCO.COM:1521/SCD.MYCO.COM(注意 //@ 之后)

标签: oracle jpa jdbc eclipselink


【解决方案1】:

oracle 12.1 可能会发生这种情况,

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

【讨论】:

    【解决方案2】:

    它与从http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html 下载的最新 ojdbc 驱动程序 jar 工作正常,无需其他更改。谢谢你的提示!

    【讨论】:

    • 这行得通。 ojdbc6 一切正常,但突然它开始给我这个错误。升级到ojdbc7
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2021-08-29
    • 2021-01-03
    • 2016-03-02
    • 2019-07-05
    相关资源
    最近更新 更多