電腦環境配置:
系統:Windows系統
在cmd輸入ipconfig,查看IPv4:172.20.10.5
在cmd輸入sqlplus,查看Oracle版本:Release 12.1.0.1.0
tomcat版本:apache-tomcat-8.5.51
JDK版本:JDK 1.8
一款web軟件PBOCD部署在tomcat上:apache-tomcat-8.5.51\webapps\PBOCD
錯誤詳情:
啟動web軟件PBODC,點擊apache-tomcat-8.5.51\bin\startup.bat:
連接數據庫時報錯:ORA-28040:No matching authentication protocol
解決方案:
修改三個地方(也可能不需要全部修改,根據實際情況操作)
1 修改D:\app\xiaotong\product\12.1.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora:
增加下面語句:
#表示支持oracle8版本的連接
SQLNET.ALLOWED_LOGON_VERSION=8
2 從oracle安裝路徑的lib庫里拷貝相應的oracle jdbc驅動jar包到tomcat的lib庫
原地址:D:\app\xiaotong\product\12.1.0\dbhome_1\jdbc\lib\ojdbc7.jar
目標地址:apache-tomcat-8.5.51\lib
上網查找適合自己配置的jar包版本,主要參考2個指標:oracle版本和jdk版本,如我的是Oracle 12.1.0.1.0和JDK 1.8,官網推薦使用ojdbc7.jar。
3 檢查web軟件包的數據庫連接是否正確,檢查配置文件:apache-tomcat-8.5.51\webapps\PBOCD\WEB-INF\classes\config.properties:
sys.dbType=oracle
sys.driver=oracle.jdbc.driver.OracleDriver
sys.url=jdbc:oracle:thin:@localhost:1521:ups -----------尤其是URL,推薦寫localhost,也可以寫IPv4地址
sys.username=pbocd
sys.password=pbocd
sys.testSql=SELECT 'x' FROM DUAL
sys.schema=pbocd
重啟oracle服務:OracleServiceUPS 和 OracleOraDB12Home1TNSListener
然后重啟tomcat,問題即可解決,親測有效哦~