2014-09-04 61 views
2

我在項目中使用Omnifaces。一切都很好。 我遇到的問題是我無法測試該項目,因爲我無法啓動TomEE,無論使用何種方法(EJBContainer,ApplicationComposer或Arquillian嵌入式)。TomEE + Omnifaces - test - SEVERE:CDI Bean模塊部署失敗

看來,Omnifaces有一個豆問題或什麼的。 我做了一個示例項目的項目https://bitbucket.org/zmirc/tomee-omnifaces-bug

你可以看到,我試圖用3種方式做,但我一直得到相同的錯誤。 如果你只是從pom.xml註釋Omnifaces,你可以看到TomEE正常啓動,所有測試都成功了,所以它是TomEE和Omnifaces之間的東西。

一些幫助將不勝感激,因爲這對我來說是一個很大的阻礙。 我在TomEE的論壇上也報道了這個問題:http://tomee-openejb.979440.n4.nabble.com/TomEE-Omnifaces-test-SEVERE-CDI-Beans-module-deployment-failed-td4671597.html

這是錯誤。如果您嘗試示例項目,您可以自己查看。只需從Maven開始測試即可。

我使用的是TomEE 1.7.0和Omnifaces 1.8.1。

INFO: OpenWebBeans Container is starting... 
Sep 04, 2014 12:30:42 PM org.apache.webbeans.plugins.PluginLoader startUp 
INFO: Adding OpenWebBeansPlugin : [CdiPlugin] 
Sep 04, 2014 12:30:42 PM org.apache.webbeans.plugins.PluginLoader startUp 
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin] 
Sep 04, 2014 12:30:42 PM org.apache.webbeans.config.BeansDeployer validateInjectionPoints 
INFO: All injection points were validated successfully. 
Sep 04, 2014 12:30:42 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication 
SEVERE: CDI Beans module deployment failed 
java.lang.NullPointerException 
     at org.omnifaces.util.Beans.getReference(Beans.java:78) 
     at org.omnifaces.util.Beans.getReference(Beans.java:66) 
     at org.omnifaces.cdi.eager.EagerExtension.load(EagerExtension.java:111) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.apache.webbeans.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:266) 
     at org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:482) 
     at org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:446) 
     at org.apache.webbeans.container.BeanManagerImpl.fireLifecycleEvent(BeanManagerImpl.java:436) 
     at org.apache.webbeans.config.BeansDeployer.fireAfterDeploymentValidationEvent(BeansDeployer.java:374) 
     at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:205) 
     at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:194) 
     at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:160) 
     at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) 
     at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:797) 
     at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623) 
     at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248) 
     at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087) 
     at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130) 
     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) 
     at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:648) 
     at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:618) 
     at org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:43) 
     at org.apache.tomee.embedded.Container.deploy(Container.java:362) 
     at org.apache.tomee.embedded.Container.deploy(Container.java:348) 
     at org.apache.openejb.arquillian.embedded.EmbeddedTomEEContainer.deploy(EmbeddedTomEEContainer.java:140) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:161) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:128) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:271) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:127) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
     at org.jboss.arquillian.container.impl.client.container.DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy(DeploymentExceptionHandler.java:50) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
     at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java:78) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
     at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
     at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) 
     at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) 
     at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:95) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:80) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachDeployment(ContainerDeployController.java:263) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachManagedDeployment(ContainerDeployController.java:239) 
     at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deployManaged(ContainerDeployController.java:79) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
     at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) 
     at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) 
     at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) 
     at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:101) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
     at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:65) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
     at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:84) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
     at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
     at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) 
     at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) 
     at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:80) 
     at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:190) 
     at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:345) 
     at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:49) 
     at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:207) 
     at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
     at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:155) 
     at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) 
     at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123) 
     at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) 
     at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) 
     at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175) 
     at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107) 
     at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68) 

錯誤有2.0快照,2014年5月9日

INFO - Adding OpenWebBeansPlugin : [CdiPlugin] 
INFO - Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin] 
INFO - All injection points were validated successfully. 
SEVERE - CDI Beans module deployment failed 
java.lang.NullPointerException 
    at org.omnifaces.util.Beans.getReference(Beans.java:101) 
    at org.omnifaces.util.Beans.getReference(Beans.java:88) 
    at org.omnifaces.cdi.eager.EagerExtension.load(EagerExtension.java:111) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at org.apache.webbeans.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:266) 
    at org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:482) 
    at org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:446) 
    at org.apache.webbeans.container.BeanManagerImpl.fireLifecycleEvent(BeanManagerImpl.java:436) 
    at org.apache.webbeans.config.BeansDeployer.fireAfterDeploymentValidationEvent(BeansDeployer.java:374) 
    at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:205) 
    at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:194) 
    at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:160) 
    at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) 
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:797) 
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623) 
    at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248) 
    at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087) 
    at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) 
    at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:648) 
    at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:618) 
    at org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:43) 
    at org.apache.tomee.embedded.Container.deploy(Container.java:362) 
    at org.apache.tomee.embedded.EmbeddedTomEEContainer$EmbeddedTomEEContainerProvider.createEJBContainer(EmbeddedTomEEContainer.java:140) 
    at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:56) 
    at zmirc.tomee.omnifaces.TestUtils.getEJBContainer(TestUtils.java:23) 
    at zmirc.tomee.omnifaces.EJBContainerTest.start(EJBContainerTest.java:18) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) 
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) 
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175) 
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107) 
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68) 

回答

3

我上TomEE論壇的答案。
臨時解決方案是回退到Omnifaces 1.7或升級到1.10-SNAPSHOT。

+0

謝謝你的提問/回答。這個問題表明TomEE使用的OpenWebBeans CDI實現在'@Observes AfterDeploymentValidation'事件期間未能注入'BeanManager'。雖然我不認爲OmniFaces 2.0快照會的工作,但如果你有環境和機會,可以請您給2.0快照快照嘗試,以及,讓我知道? – BalusC 2014-09-04 17:23:15

+0

@BalusC不客氣。我剛剛嘗試過2.0,但出現了類似的錯誤。我將錯誤日誌添加到主要問題文章中。我發佈了一個示例maven項目的鏈接,因此您可以輕鬆地嘗試,只需更改Omnifaces版本即可。 – zmirc 2014-09-05 15:16:01

+0

@BalusC你找到了解決方案嗎?任何新聞? – zmirc 2014-09-23 22:30:26