1 2 Previous Next 22 Replies Latest reply on Apr 17, 2011 6:01 AM by aslak Go to original post
      • 15. Simple example - no luck for a week!
        yangju

        That is where I put it (in src/test/resources). I see it is copied over to target/test-classes

        Same error. arquillian.xml does not seem to be used at all.

        • 16. Simple example - no luck for a week!
          mwtemple

          I didn't use either jndi.properties or arquillian.xml.

           

          Do you have arquillian-jbossas-remote-6-1.0.0.Alpha5.jar in your classpath?

           

          Is JBoss indeed running?

           

          Mine never tried to "start" JBoss, it just connected.

          • 17. Simple example - no luck for a week!
            aslak

            Could you provide a full example ?

            • 18. Simple example - no luck for a week!
              ceefour

              Try running this example project:

               

              http://spring-java-ee.blogspot.com/2011/04/using-shiro-for-authorization-via-cdi.html

               

              In JBoss ... who knows it might help you

              • 19. Simple example - no luck for a week!
                yangju

                Thanks for helps from all of you. I still could not get a simple jboss remote 6 container working. So for now I just use default localhost and waiting for a future Arquillian release.

                 

                But I am stuck on another problem. It seems that testing of cdi beans in jboss romote 6 container (localhost) is fine, until you have a conversation scoped bean injected into the cdi bean that you are testing with. The weld version in jboss 6 final is 1.1.0-cr3.

                An eample:

                I have this AuthorizationService cdi bean (non-jsf bean) with the a seam managed (SMPC) Persistence unit injected. The Seam 3 SMPC has this PU as conversationscoped, per its documentation. However, when I run a test on this Authorization service bean, Arquillian says that the conversation scoped context is not available. Some people say that you can manually enable conversationscoped for arquillian using Component.intance()... but I could not find this api from Component. Here is the stack trace (from eclipse):

                 

                org.jboss.arquillian.spi.ArquillianProxyException: org.jboss.weld.context.ContextNotActiveException : WELD-001303 No active contexts for scope type javax.enterprise.context.ConversationScoped [Proxied because : Exception class not found on client]

                    at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:643)

                    at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:77)

                    at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:124)

                    at org.jboss.weld.proxies.SMPC-org$jboss$seam$persistence$ManagedPersistenceContextExtension-com$pearson$epen$cdi$producer$CentralRepoProducer$centralEmf[@com$pearson$epen$cdi$qualifier$CentralSMPC()@javax$enterprise$context$ConversationScoped()@javax$enterprise$inject$Produces()@javax$persistence$PersistenceUnit(name=,unitName=ePENCore)@org$jboss$seam$solder$core$ExtensionManaged()]_$$_WeldClientProxy.find(SMPC-org$jboss$seam$persistence$ManagedPersistenceContextExtension-com$pearson$epen$cdi$producer$CentralRepoProducer$centralEmf[@com$pearson$epen$cdi$qualifier$CentralSMPC()@javax$enterprise$context$ConversationScoped()@javax$enterprise$inject$Produces()@javax$persistence$PersistenceUnit(name=,unitName=ePENCore)@org$jboss$seam$solder$core$ExtensionManaged()]_$$_WeldClientProxy.java)

                    at com.pearson.epen.impl.service.AuthorizationServiceImpl.isTaskAllowedForRole(AuthorizationServiceImpl.java:80)

                    at com.pearson.epen.impl.service.org$jboss$weld$bean-jboss$classloader:id="vfs:$$$C:$apps$jboss$jboss-6$0$0$Final$server$epen_mysql$deploy$AuthorizationServiceTest$war"-ManagedBean-com$pearson$epen$impl$service$AuthorizationServiceImpl[@javax$ejb$TransactionAttribute(value=REQUIRED)@javax$inject$Named(value=authorizationService)@org$jboss$seam$transaction$TransactionalInterceptorBinding()]{com$pearson$epen$impl$service$AuthorizationServiceImpl$accountDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$assignmentDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$authorizationDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$em[@com$pearson$epen$cdi$qualifier$CentralSMPC()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$log[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$roles[@com$pearson$epen$cdi$qualifier$StaticData()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$userSession[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$init[@javax$annotation$PostConstruct()]()$}_$$_WeldSubclass.isTaskAllowedForRole(org$jboss$weld$bean-jboss$classloader:id="vfs:$$$C:$apps$jboss$jboss-6$0$0$Final$server$epen_mysql$deploy$AuthorizationServiceTest$war"-ManagedBean-com$pearson$epen$impl$service$AuthorizationServiceImpl[@javax$ejb$TransactionAttribute(value=REQUIRED)@javax$inject$Named(value=authorizationService)@org$jboss$seam$transaction$TransactionalInterceptorBinding()]{com$pearson$epen$impl$service$AuthorizationServiceImpl$accountDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$assignmentDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$authorizationDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$em[@com$pearson$epen$cdi$qualifier$CentralSMPC()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$log[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$roles[@com$pearson$epen$cdi$qualifier$StaticData()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$userSession[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$init[@javax$annotation$PostConstruct()]()$}_$$_WeldSubclass.java)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.jboss.interceptor.proxy.SimpleInterceptionChain.invokeNextInterceptor(SimpleInterceptionChain.java:114)

                    at org.jboss.interceptor.proxy.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:143)

                    at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:194)

                    at org.jboss.seam.transaction.Work.workInTransaction(Work.java:54)

                    at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:188)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.jboss.interceptor.proxy.InterceptorInvocation$InterceptorMethodInvocation.invoke(InterceptorInvocation.java:72)

                    at org.jboss.interceptor.proxy.SimpleInterceptionChain.invokeNextInterceptor(SimpleInterceptionChain.java:82)

                    at org.jboss.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:133)

                    at org.jboss.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:112)

                    at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:66)

                    at com.pearson.epen.impl.service.org$jboss$weld$bean-jboss$classloader:id="vfs:$$$C:$apps$jboss$jboss-6$0$0$Final$server$epen_mysql$deploy$AuthorizationServiceTest$war"-ManagedBean-com$pearson$epen$impl$service$AuthorizationServiceImpl[@javax$ejb$TransactionAttribute(value=REQUIRED)@javax$inject$Named(value=authorizationService)@org$jboss$seam$transaction$TransactionalInterceptorBinding()]{com$pearson$epen$impl$service$AuthorizationServiceImpl$accountDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$assignmentDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$authorizationDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$em[@com$pearson$epen$cdi$qualifier$CentralSMPC()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$log[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$roles[@com$pearson$epen$cdi$qualifier$StaticData()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$userSession[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$init[@javax$annotation$PostConstruct()]()$}_$$_WeldSubclass.isTaskAllowedForRole(org$jboss$weld$bean-jboss$classloader:id="vfs:$$$C:$apps$jboss$jboss-6$0$0$Final$server$epen_mysql$deploy$AuthorizationServiceTest$war"-ManagedBean-com$pearson$epen$impl$service$AuthorizationServiceImpl[@javax$ejb$TransactionAttribute(value=REQUIRED)@javax$inject$Named(value=authorizationService)@org$jboss$seam$transaction$TransactionalInterceptorBinding()]{com$pearson$epen$impl$service$AuthorizationServiceImpl$accountDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$assignmentDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$authorizationDAO[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$em[@com$pearson$epen$cdi$qualifier$CentralSMPC()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$log[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$roles[@com$pearson$epen$cdi$qualifier$StaticData()@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$userSession[@javax$inject$Inject()]$com$pearson$epen$impl$service$AuthorizationServiceImpl$init[@javax$annotation$PostConstruct()]()$}_$$_WeldSubclass.java)

                    at com.pearson.epen.arquillian.AuthorizationServiceTest.testIsTaskAllowedForRole(AuthorizationServiceTest.java:44)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)

                    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

                    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)

                    at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:259)

                    at org.jboss.arquillian.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:63)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)

                    at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)

                    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)

                    at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)

                    at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)

                    at org.jboss.arquillian.impl.core.EventImpl.fire(EventImpl.java:67)

                    at org.jboss.arquillian.impl.execution.ContainerTestExecuter.execute(ContainerTestExecuter.java:38)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)

                    at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)

                    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)

                    at org.jboss.arquillian.impl.TestContextHandler.createClassContext(TestContextHandler.java:68)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)

                    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)

                    at org.jboss.arquillian.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)

                    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)

                    at org.jboss.arquillian.impl.TestContextHandler.createTestContext(TestContextHandler.java:82)

                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                    at java.lang.reflect.Method.invoke(Unknown Source)

                    at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)

                    at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)

                    at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)

                    at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:101)

                    at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:251)

                    at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:214)

                    at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303)

                    at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45)

                    at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:228)

                    at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)

                    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)

                    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)

                    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

                    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

                    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

                    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

                    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

                    at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:173)

                    at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303)

                    at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45)

                    at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:187)

                    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)

                    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127)

                    at org.junit.runner.JUnitCore.run(JUnitCore.java:157)

                    at org.junit.runner.JUnitCore.run(JUnitCore.java:136)

                    at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.java:69)

                    at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.doGet(ServletTestRunner.java:84)

                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)

                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)

                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

                    at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)

                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)

                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

                    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

                    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

                    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)

                    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)

                    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)

                    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)

                    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)

                    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

                    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

                    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

                    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

                    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)

                    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

                    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

                    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)

                    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)

                    at java.lang.Thread.run(Unknown Source)

                • 20. Simple example - no luck for a week!
                  aslak

                  ConversationScope is bound to JSF by EE spec. So they won't be active during a normal HTTP request which is what Arquillian is piggybacking on.

                  • 21. Simple example - no luck for a week!
                    yangju

                    Then is there anyway to make it active? Or I cannot use Arquillian to test beans which has conversation started?

                    Can I use Arquillian and JsfUnit for this?

                    • 22. Simple example - no luck for a week!
                      aslak

                      For pure CDI testing, you can use the Weld EE Mock container, and configure it to enableConversationScope(to have it behave like Seam Servlet does, which supports ConversationScope on HTTP requests), or use the JSFUnit integration.

                       

                      (there is no JSFUnit integration released with Alpha5 support yet, right around the corner. But trunk supports it.)

                      1 2 Previous Next