繁体   English   中英

尽管更新了 OJDBC,但 Eclipse 项目 ORA-28040 异常

[英]Eclipse Project ORA-28040 Exception Despite Updated OJDBC

我加入了一个新项目,我正在通过 Eclipse 进行工作。 作为参考,服务器在 Oracle 19c 上运行,并且由不同的团队管理。

我尝试将项目放到我的 Tomcat 服务器上并连接到它,但它给了我一个 ORA-28040 异常。 这是确切的异常消息:

2022/1/11 11:08:45.847  [TRACE] com.nuorbit.persistence.DBConnection    Opening DriverManager connection
2022/1/11 11:08:46.402  [TRACE] com.nuorbit.persistence.DBConnection    Opening DriverManager connection
2022/1/11 11:08:46.946  [ERROR] com.nuorbit.utils.Errors    java.sql.SQLException: ORA-28040: No matching authentication protocol

java.sql.SQLException: ORA-28040: No matching authentication protocol

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
    at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:294)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:357)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.nuorbit.persistence.DBConnection.getConnectionByDriverManager(DBConnection.java:113)
    at com.nuorbit.persistence.DBConnection.getConnection(DBConnection.java:77)
    at com.nuorbit.persistence.DBConnection.getConnection(DBConnection.java:65)
    at com.nuorbit.utils.Settings.getSetting(Settings.java:116)
    at com.nuorbit.servlet.Startup.init(Startup.java:22)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1152)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1097)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:990)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4952)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5266)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1427)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1417)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

我四处寻找可能导致这种情况的原因,并遇到了两个常见的答案:替换我的 ojdbc jar 文件,或通过添加以下片段来更改服务器的 sqlnet.ora 文件:

SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

由于服务器不在我的控制之下,我尝试做前者。 我进入构建路径,并将 ojdbc14.jar 替换为 ojdbc8-19.3.0.0.jar。 但是,这仍然会导致相同的错误,所以我不确定我做错了什么。

ojdbc8.jar 在构建路径中。这不应该工作吗?

作为参考,我可以使用 SQL Developer 连接到服务器,以及在 Eclipse 的数据源资源管理器中使用数据库连接,所以我的项目似乎有问题。

如果有什么我可以澄清的,请告诉我。

原来旧的 ojdbc 也在引用的库中,所以我需要从那里删除它才能让它工作。 仅仅在构建路径上替换它是不够的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM