I joined a new project and I am working on it through Eclipse. For reference, the server is running on Oracle 19c, and is being managed by a different team.
I tried putting the project onto my Tomcat server and connecting to it, but it gives me an ORA-28040 exception. Here's the exact exception message:
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)
I looked around for what might be causing that, and came across two common answers: replacing my ojdbc jar file, or changing the server's sqlnet.ora file by adding the following snipet:
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Since the server is not under my control, I tried to do the former. I went into the build path, and replaced ojdbc14.jar with ojdbc8-19.3.0.0.jar. However, this still results in the same error, so I am not sure what I am doing wrong.
For reference, I am able to connect to the server using SQL Developer, as well as using Database Connection in the Data Source Explorer in Eclipse, so it seems like it's something wrong with my project specifically.
Let me know if there's anything I can clarify.