gpt4 book ai didi

jsf - WELD-001409 类型 [EagerBeansRepository] ​​的不明确依赖项

转载 作者:行者123 更新时间:2023-12-04 21:59:20 25 4
gpt4 key购买 nike

我正在尝试将我的 JSF 应用程序迁移到 CDI。我实现了以下更改:

  • 添加了一个空的 beans.xml 文件到 WEB-INF
  • 将 @ManagedBean 更改为 @Named
  • 将我拥有的所有范围更改为 CDI 范围( session 、查看、请求)
  • 将所有@EJB 和@ManagedProperty 更改为@Inject

  • 但是,Omnifaces 错误阻止了部署,因为我收到了三遍以下错误:

    org.jboss.weld.exceptions.DeploymentException: WELD-001409 Ambiguous dependencies for type [EagerBeansRepository] with qualifiers [@Default] at injection point [[BackedAnnotatedField] @Inject private org.omnifaces.ApplicationListener.eagerBeansRepository]. Possible dependencies [[Managed Bean [class org.omnifaces.cdi.eager.EagerBeansRepository] with qualifiers [@Any @Default], Managed Bean [class org.omnifaces.cdi.eager.EagerBeansRepository] with qualifiers [@Any @Default]]]



    我已经降级到 Omnifaces 1.8.1 并且部署成功。为什么 Omnifaces 2.0 会导致此错误?

    开发环境:
  • Glassfish 4
  • Omnifaces 2.0
  • JSF (Mojarra 2.2.0)
  • WELD-000900 2.0.0 (SP1)
  • 最佳答案

    此异常表明 OmniFaces JAR(特别是包含上述歧义类的 JAR,在您的特定情况下为 EagerBeansRepository)在运行时类路径中重复。只要 JAR 正确放置在 /WEB-INF/lib 中webapp 而不是其他地方,那么如果在部署之前没有正确清理 GlassFish 工作文件夹,就会发生这种情况。特别是 GlassFish Eclipse 插件在这方面失败了。您需要手动清理 /glassfish/domains/[domainname] 中的 GlassFish 工作文件夹。 .

    顺便说一句,当您使用它时,我强烈建议您也升级到 GlassFish 4.1。 GlassFish 4.0 与每个第一个 GlassFish 版本一样(将它准备为“第一个 Java EE X 应用服务器”以及每个新的 Java EE API 版本的所有麻烦)都有太多的童年错误。

    关于jsf - WELD-001409 类型 [EagerBeansRepository] ​​的不明确依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282236/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com