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;
> > }
> > }
> > }
> >
>

Reply via email to