java - Wildfly - 10.x - WELD-001414 : Bean name is ambiguous. 名称 csfFLOWDISCOVERYCDIHELPER 解析为 beans

标签 java jsf jsf-2 wildfly-10

  • 服务器 - WildFly - 10.1.0
  • JSF 版本 - 2.2
  • Primefaces - 5.0

我正在尝试在 WildFly 10.1.0 服务器中部署 .war 文件。早些时候,我在 JBoss 7.1 上运行它,并且运行良好。但现在,当我尝试在 WildFly 服务器中部署应用程序时,遇到了一组导致部署失败的异常。

09:05:02,630 SEVERE [javax.enterprise.resource.webcontainer.jsf.application.view] (MSC service thread 1-3) Unable to obtain CDI 1.1 utilities for Mojarra
09:05:02,650 SEVERE [javax.enterprise.resource.webcontainer.jsf.flow] (MSC service thread 1-3) Unable to obtain CDI 1.1 utilities for Mojarra
09:05:02,897 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.unit."MyApplication.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."MyApplication.war".WeldStartService: Failed to start service
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001414: Bean name is ambiguous. Name csfFLOWDISCOVERYCDIHELPER resolves to beans:
  - Managed Bean [class com.sun.faces.flow.FlowDiscoveryCDIHelper] with qualifiers [@Default @Named @Any],
  - Managed Bean [class com.sun.faces.flow.FlowDiscoveryCDIHelper] with qualifiers [@Default @Named @Any]
        at org.jboss.weld.bootstrap.ConcurrentValidator$5.doWork(ConcurrentValidator.java:134)
        at org.jboss.weld.bootstrap.ConcurrentValidator$5.doWork(ConcurrentValidator.java:130)
        at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63)
        at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        at org.jboss.threads.JBossThread.run(JBossThread.java:320)

09:05:02,971 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "MyApplication.war")]) - failure description: {
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"MyApplication.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"MyApplication.war\".WeldStartService: Failed to start service
    Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001414: Bean name is ambiguous. Name csfFLOWDISCOVERYCDIHELPER resolves to beans:
  - Managed Bean [class com.sun.faces.flow.FlowDiscoveryCDIHelper] with qualifiers [@Default @Named @Any],
  - Managed Bean [class com.sun.faces.flow.FlowDiscoveryCDIHelper] with qualifiers [@Default @Named @Any]"},
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.deployment.unit.\"MyApplication.war\".WeldStartService"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined
}
09:05:03,041 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 34) WFLYSRV0010: Deployed "MyApplication.war" (runtime-name : "MyApplication.war")
09:05:03,068 INFO  [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report
WFLYCTL0186:   Services which failed to start:      service jboss.deployment.unit."MyApplication.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."MyApplication.war".WeldStartService: Failed to start service

我并没有真正明白这个异常所指向的地方。错误也不清楚。我发现了其他关于此错误的 SO 帖子,但这些帖子是与 GlassFish 服务器有关的。有没有人遇到过类似类型的问题并解决了这个问题。如果有人指出我正确的方向或有任何解决方案,我将非常感激。

最佳答案

应用程序中的 jsf-api 和 jsf-impl jar 版本与应用程序服务器实现的版本不同会导致此问题。从 WEB-INF/lib 文件夹中删除应用程序提供的 jar 并使用服务器提供的 jar 可以解决问题。

关于java - Wildfly - 10.x - WELD-001414 : Bean name is ambiguous. 名称 csfFLOWDISCOVERYCDIHELPER 解析为 beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43648322/

相关文章:

java - 这是 BPM 还是其他什么?

java - 如何更改 Android Activity 的背景颜色

ajax - JSF 2 - Ajax - 表单未完全呈现

jsf - 请求范围和查看范围

javascript - 更改 <p :commandButton> value with JavaScript

java - 如何在没有 FacesContext 的情况下获取资源路径?

java - Java 中 JSON 注入(inject)的强化错误

java - 我可以使用 iText 从 PDF 中删除单个页面的功能

jsf - 无法在基本 JSF 项目中找到 CDI BeanManager

javascript - 带有 modal=true 的 Primefaces 对话框无法正常工作