前提概要:某个项目需要做查询页面,但是查询的库有多个,且有多种:oracle、SqlServer和pg,所以配置数据源也成了一个问题,因为weblogic版本是10.3.2版本,没有sqlserver的jdbc驱动,因此需要添加驱动才能配置。
1、中间件及数据库信息
中间件:weblogic 10.3.2.0
数据库:sqlserver 2014
ip:10.10.10.10
port:8888
客户端连接时数据库名:GCCDB
代码连接时数据库名:UMPDB
用户:dbuser
密码:123456ABc
2、下载sqlserver的jdbc包并配置
(1)从微软官方搜索:SQL Server JDBC Driver
(2)选择:Microsoft JDBC Driver 4.0 for SQL Server
• Sqljdbc4.jar 需要 JRE 6 并支持 JDBC 4.0 API
受支持的 SQL Server 版本:
• Microsoft SQL Server 2016
• Microsoft SQL Server 2014
(3)下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=54629
(4)拷贝将sqlserver4.jar包放在目标目录下:
选择sqlserver4.jar放到C:\Oracle\Middleware\wlserver_10.3\common\lib目录下
配置C:\Oracle\Middleware\wlserver_10.3\common\bin下的的commEnv.cmd文件中WEBLOGIC_CLASSPATH,在最后加上“;%WL_HOME%\common\lib\sqljdbc4.jar”
别忘了分号隔开!!!
注:weblogic启动的时候,会加载这个配置项的sqlserver4.jar
3、weblogic配置步骤
(1)数据源属性
名称:umpDS
JNDI名称:jdbc/yypt/ump
数据库类型:MS SQL Server
数据库驱动程序:其他
(2)连接属性
数据库名称(为客户端连接时数据库名):GCCDB
主机名:10.10.10.10
端口:8888
数据库用户名:dbuser
口令:123456ABc
确认口令:123456ABc
(3)测试数据库连接
驱动程序类名称:com.microsoft.sqlserver.jdbc.SQLServerDriver
URL:jdbc:sqlserver://10.10.10.10:8888;datebaseName=GCCDB;user=dbuser;password=123456ABc
(4)测试配置
(5)完成
无报错则ok
4、报错
(1)测试配置连接报错
Cannot load driver: com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource
这个报错是你的驱动有问题,因为下载的包里有sqlserver4.jar和sqlserver.jar两个包,这里用sqlserver4.jar,
还要确认ommEnv.cmd文件中WEBLOGIC_CLASSPATH变量结尾添加了sqlserver4.jar的路径;
还要确认你的驱动程序类名称是否正确,为com.microsoft.sqlserver.jdbc.SQLServerDriver,不同的驱动驱动名也是不同的。
(2)点击完成激活更改报错
The DBMS driver exception was: Login failed for user ''. ClientConnectionId:32a26820-3d59-4c00-bb3d-1b0ad91f34b9
这个问题是你的数据源配置有问题,仔细检查下你的数据库名称、用户、密码,是否有误。我这里是数据库名称有误,应该为客户端连接时数据库名:GCCDB。
在启动实例的时候,发现报错:
javax.naming.NameNotFoundException: Unable to resolve 'jdbc.yypt.ump'. Resolved 'jdbc.yypt'; remaining name 'ump'
通过分析得出问题所在,在确认context文件中地配置源没有问题,可以定位问题在数据源配置上有问题,查看数据源,发现配置的数据源不在Adminserver控制下,勾选保存后,再次报错:
The DBMS driver exception was: Login failed for user ''. ClientConnectionId:32a26820-3d59-4c00-bb3d-1b0ad91f34b9
又出现这个问题,发现所有信息都没有问题,就是在url上的问题,引起了这个报错,将原来的url:
jdbc:sqlserver://10.10.10.10:8888
修改为:
jdbc:sqlserver://10.10.10.10:8888;datebaseName=GCCDB;user=dbuser;password=123456ABc