📌 前言
最近在服务器上部署一个 Spring Boot 项目(打包为 WAR 丢进 Tomcat 8.5.99),数据库是 Oracle 12c。原本本地跑得好好的,一上服务器就死活连不上数据库,报了一个极其误导人的错误:
ORA-01005: null password given; logon denied。排查过程极其曲折,甚至一度怀疑人生(代码里明明设了密码,底层居然说密码是 null)。最终终于破案,原来是Maven 依赖冲突导致底层驱动版本过高,与服务器的老 JDK 不兼容。
在此记录整个过程,希望能帮遇到同样问题的兄弟少走弯路。
🖥️ 环境信息
本地环境:JDK 1.8.0_452(高版本),IDEA 直接运行正常。
服务器环境:Linux + Tomcat 8.5.99 +JDK 1.8.0_131(2017年老版本)。
数据库:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0。
框架:Spring Boot 2.7.18 + Druid 1.2.4 + Jasypt。
最终结论:将
ojdbc8驱动强制降级为ojdbc8-19.3.0.0.jar,问题瞬间解决。
💥 报错现象
服务器 Tomcat 启动时,catalina.out