Omnifaces 2.5.1 和 EAR 中的多个 WAR
Omnifaces 2.5.1 and multiple WARs inside EAR
我有一个应用程序在 Wildfly 10 下运行 Omnifaces 2.5.1 Mojarra 运行良好。这个应用程序有多个 WARs 但只有一个使用 Omnifaces。
今天我尝试在 EAR 中添加 Omnifaces 以在一秒钟内使用 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.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory.call(IterativeWorkerTaskFactory.java:63)
at org.jboss.weld.executor.IterativeWorkerTaskFactory.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;
}
注意:有时工作正常,有时不工作。当我重新启动应用程序时。如果我重新启动,则无效。
您不能将 @Param
与包含打包在 EAR
中的 Omnifaces 的多个 WAR
一起使用。这是CDI和OF交互的bug。
相关博客post:http://balusc.omnifaces.org/2013/10/cdi-behaved-unexpectedly-in-ear-so.html
我最近没有测试过它是否可以在最新版本中使用。
我有一个应用程序在 Wildfly 10 下运行 Omnifaces 2.5.1 Mojarra 运行良好。这个应用程序有多个 WARs 但只有一个使用 Omnifaces。
今天我尝试在 EAR 中添加 Omnifaces 以在一秒钟内使用 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.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory.call(IterativeWorkerTaskFactory.java:63)
at org.jboss.weld.executor.IterativeWorkerTaskFactory.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;
}
注意:有时工作正常,有时不工作。当我重新启动应用程序时。如果我重新启动,则无效。
您不能将 @Param
与包含打包在 EAR
中的 Omnifaces 的多个 WAR
一起使用。这是CDI和OF交互的bug。
相关博客post:http://balusc.omnifaces.org/2013/10/cdi-behaved-unexpectedly-in-ear-so.html
我最近没有测试过它是否可以在最新版本中使用。