连接数据库时报错:ORA-28040:No matching authentication protocol 解决方案_更新版

电脑环境配置:

系统: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.51webappsPBOCD

错误详情:

启动web软件PBODC,点击apache-tomcat-8.5.51instartup.bat:

连接数据库时报错:ORA-28040:No matching authentication protocol

解决方案:

 修改三个地方(也可能不需要全部修改,根据实际情况操作)

1 修改D:appxiaotongproduct12.1.0dbhome_1NETWORKADMINsqlnet.ora:

增加下面语句:

#表示支持oracle8版本的连接
SQLNET.ALLOWED_LOGON_VERSION=8

2 从oracle安装路径的lib库里拷贝相应的oracle jdbc驱动jar包到tomcat的lib库

原地址:D:appxiaotongproduct12.1.0dbhome_1jdbclibojdbc7.jar

目标地址:apache-tomcat-8.5.51lib

上网查找适合自己配置的jar包版本,主要参考2个指标:oracle版本和jdk版本,如我的是Oracle 12.1.0.1.0和JDK 1.8,官网推荐使用ojdbc7.jar。

3 检查web软件包的数据库连接是否正确,检查配置文件:apache-tomcat-8.5.51webappsPBOCDWEB-INFclassesconfig.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,问题即可解决,亲测有效哦~

原文地址:https://www.cnblogs.com/tongying/p/14547999.html