You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by Ove Ranheim <or...@gmail.com> on 2014/10/15 18:54:00 UTC

ExternalContainer and No active context for RequestScoped

Hi,

I'm looking into the ExternalContainer impl in test-control and it throws the exception: No active contexts for scope type javax.enterprise.context.RequestScoped

Fair enough, but how do I start the ReqeustScope using cdictrl (?), since it is the CdiTestControl that actually boots the container.

@RunWith(PartsTestRunner.class)
@TestControl(startScopes = RequestScoped.class, startExternalContainers = true)
public class CdiTest {
}

@ApplicationScoped
public class UndertowTestContainer implements TestAware, ExternalContainer {
  ...
}

And added META-INF/services/org.apache.deltaspike.testcontrol.spi.ExternalContainer :
com.parts.server.undertow.container.UndertowTestContainer

The documentation is slightly sparse, so hope you can advise.

Best regards
Ove


Oct 15, 2014 6:48:39 PM org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext bootExternalContainers
WARNING: booting com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy failed
org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.enterprise.context.RequestScoped
	at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:687)
	at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:79)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:99)
	at org.jboss.weld.proxies.DynamicMockManager$1289583109$Proxy$_$$_WeldClientProxy.getMock(Unknown Source)
	at org.apache.deltaspike.testcontrol.impl.mock.MockAwareInjectionTargetWrapper.produce(MockAwareInjectionTargetWrapper.java:59)
	at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:149)
	at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
	at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78)
	at com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy.setTestClass(Unknown Source)
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.bootExternalContainers(CdiTestRunner.java:522)
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.applyBeforeClassConfig(CdiTestRunner.java:458)
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$BeforeClassStatement.evaluate(CdiTestRunner.java:360)
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$AfterClassStatement.evaluate(CdiTestRunner.java:387)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner.run(CdiTestRunner.java:136)
	at org.junit.runners.Suite.runChild(Suite.java:127)
	at org.junit.runners.Suite.runChild(Suite.java:26)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:141)
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:114)
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:86)
	at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:134)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

18:48:39.635 [main] WARN  o.a.d.t.api.junit.CdiTestRunner - booting com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy failed
org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.enterprise.context.RequestScoped
	at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:687) ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
	at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:79) ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:99) ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
	at org.jboss.weld.proxies.DynamicMockManager$1289583109$Proxy$_$$_WeldClientProxy.getMock(Unknown Source) ~[weld-core-2.2.4.Final.jar:na]
	at org.apache.deltaspike.testcontrol.impl.mock.MockAwareInjectionTargetWrapper.produce(MockAwareInjectionTargetWrapper.java:59) ~[deltaspike-test-control-module-impl-1.0.3.jar:1.0.3]
	at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:149) ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
	at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96) ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
	at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98) ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78) ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
	at com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy.setTestClass(Unknown Source) ~[test-classes/:na]
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.bootExternalContainers(CdiTestRunner.java:522) [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.applyBeforeClassConfig(CdiTestRunner.java:458) [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$BeforeClassStatement.evaluate(CdiTestRunner.java:360) [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$AfterClassStatement.evaluate(CdiTestRunner.java:387) [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309) [junit-4.11.jar:na]
	at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner.run(CdiTestRunner.java:136) [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
	at org.junit.runners.Suite.runChild(Suite.java:127) [junit-4.11.jar:na]
	at org.junit.runners.Suite.runChild(Suite.java:26) [junit-4.11.jar:na]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) [junit-4.11.jar:na]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) [junit-4.11.jar:na]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) [junit-4.11.jar:na]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) [junit-4.11.jar:na]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) [junit-4.11.jar:na]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309) [junit-4.11.jar:na]
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160) [junit-4.11.jar:na]
	at org.junit.runner.JUnitCore.run(JUnitCore.java:138) [junit-4.11.jar:na]
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:141) [surefire-junit47-2.16.jar:2.16]
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:114) [surefire-junit47-2.16.jar:2.16]
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:86) [surefire-junit47-2.16.jar:2.16]
	at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:134) [surefire-junit47-2.16.jar:2.16]
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) [surefire-booter-2.16.jar:2.16]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) [surefire-booter-2.16.jar:2.16]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) [surefire-booter-2.16.jar:2.16]



Re: ExternalContainer and No active context for RequestScoped

Posted by Gerhard Petracek <ge...@gmail.com>.
hi ove,

usually you shouldn't start the request-scope for the whole test-class.
please have a look at our own tests [1] to see the most important use-cases.
if you still have issues, please provide a demo-application which
illustrates the constellation you would like to use (without workarounds).

regards,
gerhard

[1]
https://github.com/apache/deltaspike/tree/master/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol



2014-10-15 18:54 GMT+02:00 Ove Ranheim <or...@gmail.com>:

> Hi,
>
> I'm looking into the ExternalContainer impl in test-control and it throws
> the exception: No active contexts for scope type
> javax.enterprise.context.RequestScoped
>
> Fair enough, but how do I start the ReqeustScope using cdictrl (?), since
> it is the CdiTestControl that actually boots the container.
>
> @RunWith(PartsTestRunner.class)
> @TestControl(startScopes = RequestScoped.class, startExternalContainers =
> true)
> public class CdiTest {
> }
>
> @ApplicationScoped
> public class UndertowTestContainer implements TestAware, ExternalContainer
> {
>   ...
> }
>
> And added
> META-INF/services/org.apache.deltaspike.testcontrol.spi.ExternalContainer :
> com.parts.server.undertow.container.UndertowTestContainer
>
> The documentation is slightly sparse, so hope you can advise.
>
> Best regards
> Ove
>
>
> Oct 15, 2014 6:48:39 PM
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext
> bootExternalContainers
> WARNING: booting
> com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy
> failed
> org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active
> contexts for scope type javax.enterprise.context.RequestScoped
>         at
> org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:687)
>         at
> org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:79)
>         at
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:99)
>         at
> org.jboss.weld.proxies.DynamicMockManager$1289583109$Proxy$_$$_WeldClientProxy.getMock(Unknown
> Source)
>         at
> org.apache.deltaspike.testcontrol.impl.mock.MockAwareInjectionTargetWrapper.produce(MockAwareInjectionTargetWrapper.java:59)
>         at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:149)
>         at
> org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
>         at
> org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98)
>         at
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78)
>         at
> com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy.setTestClass(Unknown
> Source)
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.bootExternalContainers(CdiTestRunner.java:522)
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.applyBeforeClassConfig(CdiTestRunner.java:458)
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$BeforeClassStatement.evaluate(CdiTestRunner.java:360)
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$AfterClassStatement.evaluate(CdiTestRunner.java:387)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner.run(CdiTestRunner.java:136)
>         at org.junit.runners.Suite.runChild(Suite.java:127)
>         at org.junit.runners.Suite.runChild(Suite.java:26)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>         at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
>         at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:141)
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:114)
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:86)
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:134)
>         at
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>         at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>         at
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>
> 18:48:39.635 [main] WARN  o.a.d.t.api.junit.CdiTestRunner - booting
> com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy
> failed
> org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active
> contexts for scope type javax.enterprise.context.RequestScoped
>         at
> org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:687)
> ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
>         at
> org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:79)
> ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
>         at
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:99)
> ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
>         at
> org.jboss.weld.proxies.DynamicMockManager$1289583109$Proxy$_$$_WeldClientProxy.getMock(Unknown
> Source) ~[weld-core-2.2.4.Final.jar:na]
>         at
> org.apache.deltaspike.testcontrol.impl.mock.MockAwareInjectionTargetWrapper.produce(MockAwareInjectionTargetWrapper.java:59)
> ~[deltaspike-test-control-module-impl-1.0.3.jar:1.0.3]
>         at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:149)
> ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
>         at
> org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
> ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
>         at
> org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98)
> ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
>         at
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78)
> ~[weld-core-2.2.4.Final.jar:2014-07-18 16:55]
>         at
> com.parts.server.undertow.container.UndertowTestContainer$Proxy$_$$_WeldClientProxy.setTestClass(Unknown
> Source) ~[test-classes/:na]
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.bootExternalContainers(CdiTestRunner.java:522)
> [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.applyBeforeClassConfig(CdiTestRunner.java:458)
> [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$BeforeClassStatement.evaluate(CdiTestRunner.java:360)
> [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$AfterClassStatement.evaluate(CdiTestRunner.java:387)
> [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> [junit-4.11.jar:na]
>         at
> org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner.run(CdiTestRunner.java:136)
> [deltaspike-test-control-module-api-1.0.3.jar:1.0.3]
>         at org.junit.runners.Suite.runChild(Suite.java:127)
> [junit-4.11.jar:na]
>         at org.junit.runners.Suite.runChild(Suite.java:26)
> [junit-4.11.jar:na]
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> [junit-4.11.jar:na]
>         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> [junit-4.11.jar:na]
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> [junit-4.11.jar:na]
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> [junit-4.11.jar:na]
>         at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> [junit-4.11.jar:na]
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> [junit-4.11.jar:na]
>         at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> [junit-4.11.jar:na]
>         at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
> [junit-4.11.jar:na]
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:141)
> [surefire-junit47-2.16.jar:2.16]
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:114)
> [surefire-junit47-2.16.jar:2.16]
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:86)
> [surefire-junit47-2.16.jar:2.16]
>         at
> org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:134)
> [surefire-junit47-2.16.jar:2.16]
>         at
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
> [surefire-booter-2.16.jar:2.16]
>         at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
> [surefire-booter-2.16.jar:2.16]
>         at
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
> [surefire-booter-2.16.jar:2.16]
>
>
>