簡體   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