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

Jakarta EE 9.1项目连接H2数据库报Duplicate property USER异常

问题根因

org.h2.jdbc.JdbcSQLNonTransientConnectionException: Duplicate property "USER" [90066-212]异常由数据源配置冲突导致:
Jakarta EE容器解析web.xml中定义的<data-source>节点时,会自动从JDBC URL中拆分出USER、PASSWORD这类连接属性,拆分完成后会将这些属性作为独立配置参数再次传给H2驱动。你当前将账号密码直接拼接在JDBC URL中,导致H2 2.1.212版本驱动同时收到URL内嵌的USER参数、容器独立传入的USER参数,判定属性重复抛出异常。

修复方案

调整web.xml中的数据源配置,不要将用户名、密码拼接在JDBC URL中,改用Jakarta数据源规范定义的<user>、<password>标签单独配置即可,其余配置(persistence.xml、H2控制台映射、Maven依赖)均无需修改。
修改后的数据源配置片段如下:

<data-source>
    <name>java:global/dataSource</name>
    <class-name>org.h2.jdbcx.JdbcDataSource</class-name>
    <url>jdbc:h2:file:D:/testdb</url>
    <user>sa</user>
    <password>123</password>
</data-source>

修改完成后重启服务,即可正常建立H2数据库连接,JPA表自动生成、H2控制台访问功能均不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:28:03