【问题标题】:Omnifaces 2.5.1 and multiple WARs inside EAROmnifaces 2.5.1 和 EAR 中的多个 WAR
【发布时间】:2016-12-09 00:51:05
【问题描述】:

我有一个应用程序在 Wildfly 10 下运行 Omnifaces 2.5.1 Mojarra 运行良好。这个应用程序有多个 WAR,但只有一个使用 Omnifaces。

今天我尝试添加 Omnifaces 以在 EAR 内的第二个 WAR 中使用。我得到了这个例外:

Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type Long with qualifiers @Param
  at injection point [BackedAnnotatedField] @Inject @Param private siscom.web.jsf.controller.PartnerDetailsController.id
  at siscom.web.jsf.controller.PartnerDetailsController.id(PartnerDetailsController.java:0)
WELD-001475: The following beans match by type, but none have matching qualifiers:
  - Producer Method [Long] with qualifiers [@BatchProperty @Any] declared as [[UnbackedAnnotatedMethod] @Produces @BatchProperty public org.jberet.creation.BatchBeanProducer.getLong(InjectionPoint)]

    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:359)
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281)
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134)
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155)
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
    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(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

我的控制器是:

@ViewScoped @Named
public class PartnerDetailsController implements Serializable {

    @Inject
    @Param
    private Long id;
}

注意:有时工作正常,有时不行。当我重新启动应用程序时。如果我再次重新启动,则无法正常工作。

【问题讨论】:

  • 您是如何接触到 Omnifaces 2.6 的?当前版本是 2.5.1
  • 对不起。它是一个错字。我会解决的。

标签: cdi war ear omnifaces


【解决方案1】:

您不能将@Param 与多个包含封装在EAR 中的Omnifaces 的WARs 一起使用。这是 CDI 和 OF 之间的交互错误。

相关博文:http://balusc.omnifaces.org/2013/10/cdi-behaved-unexpectedly-in-ear-so.html

我最近没有测试它是否可以在最新版本中运行。

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2013-12-19
    • 2016-03-19
    相关资源
    最近更新 更多