You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Java Web应用连接到Wildfly配置的JNDI数据源并解决驱动报错

解决方法

你出现报错的核心原因是<sql:setDataSource>标签的driver和dataSource属性为互斥配置,不能同时填写。当你指定driver属性时,标签会默认将dataSource属性的值当成JDBC连接URL解析,自然会出现“找不到对应java:/Postgres的驱动”错误。

第一步:修正JSP配置

直接删除driver属性配置即可,正确写法如下:

<sql:setDataSource
  var = "myDS"
  dataSource="java:/Postgres"
/>
<sql:query var = "listStuff" dataSource = "${myDS}">
  SELECT * FROM skisEtc ORDER BY id;
</sql:query>

数据源的驱动、连接地址、用户名密码都已经在Wildfly服务端配置完成,应用侧不需要再重复配置这些参数。

可选:异常排查项

如果修正配置后仍无法连接,可按以下顺序检查:

  • 确认Wildfly侧的Postgres数据源配置中,已经填写了正确的数据库用户名(fred)和密码(secret),且测试数据源连接可以正常连通。
  • 确认PostgreSQL驱动包postgresql-42.2.23.jar已经被正确部署为Wildfly的服务级驱动/模块,不要仅将驱动包放在Web应用的WEB-INF/lib目录下,服务端数据源需要服务层面能加载到驱动类。
  • 若提示JNDI名称找不到,可在Web应用的WEB-INF/web.xml中添加资源引用配置:
<resource-ref>
  <res-ref-name>java:/Postgres</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

内容的提问来源于stack exchange,提问作者Randall1820

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:39:01