Tempted to copy paste my previous answer without more details.
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> 2015-12-04 17:07 GMT+01:00 Felipe Jaekel <[email protected]>: > Hi, > > Tried it with tomee-embedded 7.0.0-SNAPSHOT, this was the output: > > ADVERTÊNCIA - CDI-OpenWebBeans container does not support context scope > ViewScoped. Scopes @Dependent, @RequestScoped, @ApplicationScoped and > @Singleton are supported scope types > INFORMAÇÕES - Stopping network services > INFORMAÇÕES - Stopping server services > INFORMAÇÕES - Undeploying app: > /home/fjaekel/java/Eclipse/luna/workspace/AreaTecnico2 > INFORMAÇÕES - Stopping > INFORMAÇÕES - Stopping > INFORMAÇÕES - Stopping > INFORMAÇÕES - Connector vm://localhost stopped > INFORMAÇÕES - Destroying OpenEJB container > INFORMAÇÕES - Scheduler OpenEJB-TimerService-Scheduler_$_OpenEJB shutting > down. > INFORMAÇÕES - Scheduler OpenEJB-TimerService-Scheduler_$_OpenEJB paused. > INFORMAÇÕES - Scheduler unregistered from name > > 'quartz:type=QuartzScheduler,name=OpenEJB-TimerService-Scheduler,instance=OpenEJB' > in the local MBeanServer. > INFORMAÇÕES - Stopping ResourceAdapter: Default JMS Resource Adapter > INFORMAÇÕES - Scheduler OpenEJB-TimerService-Scheduler_$_OpenEJB shutdown > complete. > INFORMAÇÕES - Stopping ActiveMQ > INFORMAÇÕES - Apache ActiveMQ 5.12.0 (localhost, > ID:fjaekel-OptiPlex-390-46078-1449244592192-0:1) is shutting down > INFORMAÇÕES - Apache ActiveMQ 5.12.0 (localhost, > ID:fjaekel-OptiPlex-390-46078-1449244592192-0:1) uptime 13.626 seconds > INFORMAÇÕES - Apache ActiveMQ 5.12.0 (localhost, > ID:fjaekel-OptiPlex-390-46078-1449244592192-0:1) is shutdown > INFORMAÇÕES - Stopped ActiveMQ broker > INFORMAÇÕES - Closing DataSource: MySql > FAILED: gerarRelatorio > java.lang.NullPointerException > at > > org.apache.myfaces.cdi.view.ViewScopeContextImpl.isActive(ViewScopeContextImpl.java:123) > at > > org.apache.webbeans.context.CustomPassivatingContextImpl.isActive(CustomPassivatingContextImpl.java:64) > at > > org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:298) > at > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:88) > at > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get(NormalScopedBeanInterceptorHandler.java:70) > at > > br.com.tecnico.page.teleSuporte.RelatoriosSacwebController$$OwbNormalScopeProxy0.setFiltro(br/com/tecnico/page/teleSuporte/RelatoriosSacwebController.java) > at > > br.com.tecnico.page.teleSuporte.RelatoriosSacwebControllerTest.gerarRelatorio(RelatoriosSacwebControllerTest.java:27) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > > org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) > at org.testng.internal.Invoker.invokeMethod(Invoker.java:648) > at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:834) > at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1142) > at > > org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124) > at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) > at org.testng.TestRunner.privateRun(TestRunner.java:771) > at org.testng.TestRunner.run(TestRunner.java:621) > at org.testng.SuiteRunner.runTest(SuiteRunner.java:357) > at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) > at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) > at org.testng.SuiteRunner.run(SuiteRunner.java:259) > at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) > at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) > at org.testng.TestNG.runSuitesSequentially(TestNG.java:1176) > at org.testng.TestNG.runSuitesLocally(TestNG.java:1101) > at org.testng.TestNG.run(TestNG.java:1009) > at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) > at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) > at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) > > > 2015-12-04 8:53 GMT-02:00 Romain Manni-Bucau <[email protected]>: > > > Hi > > > > sure, you just need to start/stop the context using > > WebBeansContext.current().getContextsService() then you have start/stop > and > > you pass ViewScoped.class as scope type. > > > > > > Romain Manni-Bucau > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > <http://rmannibucau.wordpress.com> | Github < > > https://github.com/rmannibucau> | > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber > > <http://www.tomitribe.com> > > > > 2015-12-04 11:37 GMT+01:00 Felipe Jaekel <[email protected]>: > > > > > Adding beans.xml to main/resources/META-INF solved the problem, thanks. > > > > > > Regular CDI scoped beans are working fine, but I would like also to > > > test javax.faces.view.ViewScoped beans. > > > > > > Is it possible? > > > > > > > > > javax.enterprise.context.ContextNotActiveException: WebBeans context > with > > > scope type annotation @ViewScoped does not exist within current thread > > > at > > > > > > > > > org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:330) > > > at > > > > > > > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:88) > > > at > > > > > > > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get(NormalScopedBeanInterceptorHandler.java:70) > > > at > > > > > > > > > br.com.tecnico.page.teleSuporte.RelatoriosSacwebController$$OwbNormalScopeProxy0.gerarRelatorio(br/com/tecnico/page/teleSuporte/RelatoriosSacwebController.java) > > > at > > > > > > > > > br.com.tecnico.page.teleSuporte.RelatoriosSacwebControllerTest.gerarRelatorio(RelatoriosSacwebControllerTest.java:17) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > at > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > at java.lang.reflect.Method.invoke(Method.java:606) > > > at > > > > > > > > > org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) > > > at org.testng.internal.Invoker.invokeMethod(Invoker.java:648) > > > at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:834) > > > at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1142) > > > at > > > > > > > > > org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124) > > > at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) > > > at org.testng.TestRunner.privateRun(TestRunner.java:771) > > > at org.testng.TestRunner.run(TestRunner.java:621) > > > at org.testng.SuiteRunner.runTest(SuiteRunner.java:357) > > > at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) > > > at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) > > > at org.testng.SuiteRunner.run(SuiteRunner.java:259) > > > at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) > > > at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) > > > at org.testng.TestNG.runSuitesSequentially(TestNG.java:1176) > > > at org.testng.TestNG.runSuitesLocally(TestNG.java:1101) > > > at org.testng.TestNG.run(TestNG.java:1009) > > > at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) > > > at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) > > > at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) > > > > > > > > > 2015-12-03 17:52 GMT-02:00 Romain Manni-Bucau <[email protected]>: > > > > > > > Hi > > > > > > > > 2015-12-03 20:43 GMT+01:00 Felipe Jaekel <[email protected]>: > > > > > > > > > Hi, > > > > > > > > > > I believe this was already discussed on this list, but I didn't > found > > > the > > > > > topic on google. > > > > > > > > > > I'm able to test EJBs using the EJBContainer as mentioned on TomEE > > > > > examples. > > > > > > > > > > But when I try to test a CDI bean I'm getting a > > > > > UnsatisfiedResolutionException. > > > > > > > > > > I tried to add a beans.xml to /src/test/resources/META-INF but no > > > > success. > > > > > > > > > > > > > > and in main/resources/META-INF as well? > > > > > > > > > > > > > Do I need DeltaSpike on this case? > > > > > > > > > > > > > > No worse case you can use ApplicationComposer > > > > > > > > > > > > > Thanks > > > > > > > > > > > > > > > INFORMAÇÕES - Existing thread singleton service in > SystemInstance(): > > > > > org.apache.openejb.cdi.ThreadSingletonServiceImpl@4b4b25c8 > > > > > INFORMAÇÕES - OpenWebBeans Container is starting... > > > > > INFORMAÇÕES - Adding OpenWebBeansPlugin : [CdiPlugin] > > > > > INFORMAÇÕES - Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin] > > > > > GRAVE - CDI Beans module deployment failed > > > > > org.apache.webbeans.exception.inject.DeploymentException: > > > > > javax.enterprise.inject.UnsatisfiedResolutionException: Api type > > > > > [br.com.test.CdiBean] is not found with the qualifiers > > > > > Qualifiers: [@javax.enterprise.inject.Default()] > > > > > for injection into Field Injection Point, field name : bean, Bean > > > Owner > > > > : > > > > > [CdiBeanTest, Name:null, WebBeans Type:MANAGED, API > > > > > > > > > > > > > > > > > > > > Types:[java.lang.Object,br.com.test.EjbContainerTest,br.com.test.CdiBeanTest], > > > > > > > > > Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] > > > > > at > > > > > org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:215) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:192) > > > > > 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:846) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:652) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:335) > > > > > at > > > > > > > > > > > > > > > javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:56) > > > > > at br.com.test.EjbContainerTest.setUp(EjbContainerTest.java:43) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > > at > > > > > > > > > > > > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > > > at > > > > > > > > > > > > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > > > at java.lang.reflect.Method.invoke(Method.java:606) > > > > > at > > > > > > > > > > > > > > > > > > > > org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) > > > > > at > > > > > org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:515) > > > > > at > org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) > > > > > at > org.testng.internal.Invoker.invokeConfigurations(Invoker.java:140) > > > > > at > > > > > > > > > > > > > > > > > > > > org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:170) > > > > > at > > org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:104) > > > > > at org.testng.TestRunner.privateRun(TestRunner.java:771) > > > > > at org.testng.TestRunner.run(TestRunner.java:621) > > > > > at org.testng.SuiteRunner.runTest(SuiteRunner.java:357) > > > > > at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) > > > > > at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) > > > > > at org.testng.SuiteRunner.run(SuiteRunner.java:259) > > > > > at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) > > > > > at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) > > > > > at org.testng.TestNG.runSuitesSequentially(TestNG.java:1176) > > > > > at org.testng.TestNG.runSuitesLocally(TestNG.java:1101) > > > > > at org.testng.TestNG.run(TestNG.java:1009) > > > > > at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) > > > > > at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) > > > > > at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) > > > > > Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: > > Api > > > > type > > > > > [br.com.test.CdiBean] is not found with the qualifiers > > > > > Qualifiers: [@javax.enterprise.inject.Default()] > > > > > for injection into Field Injection Point, field name : bean, Bean > > > Owner > > > > : > > > > > [CdiBeanTest, Name:null, WebBeans Type:MANAGED, API > > > > > > > > > > > > > > > > > > > > Types:[java.lang.Object,br.com.test.EjbContainerTest,br.com.test.CdiBeanTest], > > > > > > > > > Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:60) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.webbeans.container.InjectionResolver.checkInjectionPoint(InjectionResolver.java:195) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.webbeans.container.BeanManagerImpl.validate(BeanManagerImpl.java:960) > > > > > at > > > > > > > > > org.apache.webbeans.config.BeansDeployer.validate(BeansDeployer.java:491) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.webbeans.config.BeansDeployer.validateInjectionPoints(BeansDeployer.java:422) > > > > > at > > > > > org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:202) > > > > > ... 32 more > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------------------------- > > > > > > > > > > @Named > > > > > public class CdiBean > > > > > { > > > > > public double randomNumber() > > > > > { > > > > > return Math.random(); > > > > > } > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------------------------- > > > > > > > > > > public class CdiBeanTest extends EjbContainerTest > > > > > { > > > > > //@Inject > > > > > //private StatelessEjb ejb; > > > > > > > > > > @Inject > > > > > private CdiBean bean; > > > > > > > > > > @Test > > > > > public void f() > > > > > { > > > > > //System.out.println(ejb.randomNumber()); > > > > > System.out.println(bean.randomNumber()); > > > > > } > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------------------------- > > > > > > > > > > public class EjbContainerTest > > > > > { > > > > > protected EJBContainer container; > > > > > > > > > > @BeforeClass > > > > > public void setUp() throws Exception > > > > > { > > > > > final Properties properties = new Properties(); > > > > > properties.setProperty("openejb.embedded.remotable", "true"); > > > > > > > > > > > > > > > > > > > > properties.setProperty("openejb.autocreate.jta-datasource-from-non-jta-one", > > > > > "false"); > > > > > > > > > > > > > > > // dataSource setup ommited > > > > > > > > > > container = EJBContainer.createEJBContainer(properties); > > > > > } > > > > > > > > > > @BeforeMethod > > > > > public void inject() throws NamingException > > > > > { > > > > > if(container != null) > > > > > { > > > > > container.getContext().bind("inject", this); > > > > > } > > > > > } > > > > > > > > > > @AfterClass > > > > > public void close() > > > > > { > > > > > if(container != null) > > > > > { > > > > > container.close(); > > > > > container = null; > > > > > } > > > > > } > > > > > } > > > > > > > > > > > > > > >
