Spring Boot 2.4.3在Weblogic 12.2.1.4.0中通过JNDI获取JDBC连接报权限错误
Spring Boot 2.4.3集成Weblogic 12.2.1.4 JNDI数据源报错修复方案
报错根因
User "<anonymous>" does not have permission to perform operation "reserve" 错误核心有两个:
- Weblogic JDBC数据源默认启用连接池资源权限校验,未授权的匿名身份无法预留连接
- Spring Boot默认JNDI查找逻辑未携带Weblogic要求的标准命名空间前缀,也没有适配Weblogic的安全上下文规则,导致请求被识别为匿名用户
修复步骤
- 第一步:调整Weblogic数据源安全配置
进入Weblogic控制台→服务→数据源→找到你配置的jdbc/ABC数据源→切换到安全选项卡:- 勾选允许全局事务,不需要分布式事务的场景可选择「一阶段提交」优化性能
- 找到「连接池安全」模块,取消勾选「启用连接预留权限检查」,也可以选择在「安全角色」配置中给
anonymous角色或者应用部署使用的Weblogic角色单独授予reserve权限 - 保存配置后重启数据源或Weblogic域服务生效
- 第二步:修正Spring Boot JNDI配置
现有配置缺少J2EE环境标准的JNDI查找前缀,且不需要配置driver-class(JNDI数据源由Weblogic统一管理驱动、用户名、密码),修改配置如下:
YML格式配置参考:# 必须加java:comp/env/前缀,否则Spring Boot无法在Weblogic环境中找到对应JNDI资源 spring.datasource.jndi-name=java:comp/env/jdbc/ABC # 移除spring.datasource.driver.class、用户名、密码等直连配置项spring: datasource: jndi-name: java:comp/env/jdbc/ABC - 第三步:(可选)补充Weblogic部署描述符
如果调整后仍报错,在项目src/main/webapp/WEB-INF目录下新增两个配置文件,打包时确保文件被打入WAR包的对应目录:web.xml声明JNDI资源引用:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <resource-ref> <description>Oracle Datasource</description> <res-ref-name>jdbc/ABC</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>weblogic.xml映射JNDI资源到Weblogic实际数据源:
<?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd"> <resource-description> <res-ref-name>jdbc/ABC</res-ref-name> <jndi-name>jdbc/ABC</jndi-name> </resource-description> </weblogic.xml> - 现有代码中的
dataSource.getConnection()调用逻辑符合JDBC标准,无需修改,调整配置后即可正常运行。
内容的提问来源于stack exchange,提问作者C. Bilgin
相关产品推荐
相关产品推荐

