【发布时间】:2013-09-30 23:28:11
【问题描述】:
JBoss 7.1、OmniFaces 1.6、Eclipse Kepler、CDI 1.0
当我从 OmniFaces 1.5 更新到 OmniFaces 1.6 时,我发现新的 Omnifaces 1.6 出现以下情况。我想这与 OmniFaces 1.6 的新有趣 CDI 功能有关。
我在一个 EAR 存档中有两个基于 JSF 的 WAR 项目,这两个项目都有 OmniFaces 作为依赖项,它们都将被部署。在部署中,OmniFaces 1.6 最终出现在两个 WAR 项目的/WEB-INF/lib 中。在 JBoss 启动时,IllegalArgumentException 被抛出。
java.lang.IllegalArgumentException: Registering converter 'class org.omnifaces.converter.ListConverter' failed, duplicates converter ID 'omnifaces.ListConverter' of other converter 'class org.omnifaces.converter.ListConverter'.
at org.omnifaces.cdi.converter.ConverterExtension.processConverters(ConverterExtension.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:264)
at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137)
at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:260)
at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170)
at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:51)
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:154)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:241)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:229)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:207)
at org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:569)
at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:559)
at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:60)
at org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:38)
at org.jboss.weld.bootstrap.events.ProcessManagedBeanImpl.fire(ProcessManagedBeanImpl.java:30)
at org.jboss.weld.bootstrap.AbstractBeanDeployer.deploy(AbstractBeanDeployer.java:123)
at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:204)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:344)
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82)
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
如果我删除一个 WAR 项目,那么异常就会消失,我可以在 EAR 中使用另一个 WAR 项目。
是否可以在多个项目中使用 OmniFaces 1.6,并在一个 EAR 中部署到 JBoss 7.1.1?
【问题讨论】:
-
这个问题已经确定,我们目前正在解决这个问题:code.google.com/p/omnifaces/issues/detail?id=251 今天或明天会有一个 1.6.1 强制修复。
-
谢谢,我会等待修复!
-
我修好了。请尝试 1.6.1 快照:oss.sonatype.org/content/repositories/snapshots/org/omnifaces/… 如果它适合你,我会发布一个带有解释的答案。
-
对不起,它还没有完全修复。我会看的。
-
现在,部署问题和转换器/验证器问题已通过当前快照修复,但
@ViewScoped在此 EAR+2WAR 构造中无法正常工作。我正在看。
标签: jsf jsf-2 cdi ear omnifaces