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

添加PicketLink依赖后出现WELD-001414 Bean名称歧义问题

解决PicketLink与Deltaspike依赖冲突引发的WELD Bean名称歧义问题

你遇到的WELD-001414: Bean name is ambiguous. Name dsWindowContext resolves to beans错误,根源非常明确:你引入的picketlink:2.7.1.Final是一个包含Deltaspike JAR的UberJar,而你的项目已经单独引入了Deltaspike依赖,这就导致了同一个Bean(这里是dsWindowContext)被重复定义,触发了Weld容器的冲突检测。

下面是具体的解决步骤:

  • 排除PicketLink中的Deltaspike依赖
    修改你的pom.xml,在PicketLink的依赖项中添加排除规则,移除它自带的所有Deltaspike相关包——因为你的项目已经有独立的Deltaspike依赖,完全不需要重复引入:

    <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink</artifactId>
        <version>2.7.1.Final</version>
        <exclusions>
            <!-- 排除所有Deltaspike相关依赖,避免重复Bean定义 -->
            <exclusion>
                <groupId>org.apache.deltaspike</groupId>
                <artifactId>*</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 确认版本兼容性
    建议先通过mvn dependency:tree命令查看PicketLink 2.7.1.Final原本依赖的Deltaspike版本,确保它和你项目中已引入的Deltaspike版本兼容,避免出现版本不匹配带来的其他潜在问题。

  • 清理并重新构建
    执行mvn clean install命令,清理本地仓库中缓存的旧依赖文件,重新构建项目,确保重复的Deltaspike JAR已经被彻底移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:17:30