[英]org.jboss.weld.exceptions.DeploymentException: WELD-001409: Ambiguous dependencies for type Bean with qualifiers @Default
[英]WELD-001409 Ambiguous dependencies for type [EagerBeansRepository]
我正在尝试将我的JSF应用程序迁移到CDI。 我已经实现了以下更改:
但是,Omnifaces错误阻止了部署,因为我收到以下错误三次:
org.jboss.weld.exceptions.DeploymentException:WELD-001409类型为[EagerBeansRepository]的模糊依赖项,注入点为[@Default] [[BackedAnnotatedField] @Inject private org.omnifaces.ApplicationListener.eagerBeansRepository]。 可能的依赖[[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会导致此错误?
发展环境:
此异常表明OmniFaces JAR(特别是包含所提到的歧义类的JAR,在您的特定情况下为EagerBeansRepository
)在运行时类路径中重复。 如果JAR正确放置在webapp的/WEB-INF/lib
中而不是其他地方,那么如果在部署之前未正确清理GlassFish工作文件夹,则会发生这种情况。 特别是已知GlassFish Eclipse插件在此失败。 您需要手动清理/glassfish/domains/[domainname]
的GlassFish工作文件夹。
顺便说一句,当你在它的时候,我强烈建议你升级到GlassFish 4.1。 GlassFish 4.0就像每个第一个GlassFish版本一样(所有麻烦都可以将它作为“First Java EE X Application Server”以及每个新的Java EE API版本)以及太多童年错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.