項目中原來用的數據庫是oracle 11g,後來升級爲oracle 12c,啓動tomcat報錯:ORA-28040: No matching authentication protocol。
有種說法是修改sqlnet.ora文件
文件路徑:oracle安裝目錄\dbhome_1\NETWORK\ADMIN\sqlnet.ora
修改該文件,在最下方添加一行:SQLNET.ALLOWED_LOGON_VERSION=8
經測試問題解決,但是部署到雲服務器上竟然神奇的不行。。。
jdbc的jar包問題
因爲數據庫的連接方式,數據庫的配置都是一樣的,所以懷疑是不是jdbc的jar包的問題。
12c的jar包是ojdbc6.jar,可到oracle安裝目錄\dbhome_1\jdbc\lib目錄下拷貝。但是項目中竟然沒找到這個jar包,只有ojdbc14.jar(不知道當時在哪得到的這個jar包),於是更加懷疑是jdbc的jar包的問題。
12c的jar包好像是對11g的連接問題進行了修復。於是嘗試替換jar包,將ojdbc14.jar刪除,重新添加ojdbc6.jar,重新引用,問題解決。
這兩種方式在不同環境下都測試過,分別都是有效的。。。
我更傾向於第二種方式,即替換jar包,因爲修改sqlnet.ora的配置經測試是可以的,所以形成了思維定式,一直在排查其他問題。早就該想到可能是jdbc的問題,走了很多彎路,解決問題思路要開闊。