3 Replies Latest reply on Sep 9, 2011 3:09 PM by Aslak Knutsen

    Cannot run arquillian tests

    Pablo Ochoa Newbie

      Hello Everyone, I'm trying to use Arquillian for some unit tests, however I can't find why they fail when deployed using Maven.

       

      This is the test class:

       

          package com.ndeveloper.spec.test;

       

          import javax.inject.Inject;

       

          import junit.framework.Assert;

       

          import org.jboss.arquillian.container.test.api.Deployment;

          import org.jboss.arquillian.junit.Arquillian;

          import org.jboss.shrinkwrap.api.ArchivePaths;

          import org.jboss.shrinkwrap.api.ShrinkWrap;

          import org.jboss.shrinkwrap.api.asset.ByteArrayAsset;

          import org.jboss.shrinkwrap.api.spec.JavaArchive;

          import org.junit.Test;

          import org.junit.runner.RunWith;

       

          import com.ndeveloper.spec.controller.GreetingBean;

       

          @RunWith(Arquillian.class)

          public class GreetingBeanTest {

             

          @Inject

          GreetingBean greetingBean;

         

          @Deployment

          public static JavaArchive createTestArchive()

          {

              return ShrinkWrap.create( JavaArchive.class,"test.jar").

                      addClass(GreetingBean.class).addAsManifestResource(

                              new ByteArrayAsset("<beans/>".getBytes()),

                              ArchivePaths.create("beans.xml"));

             

          }

         

          @Test

          public void testInjection(){

              Assert.assertEquals("Hello World", greetingBean.getGreeting());       

          }

          }

       

       

      And I'm using the jboss jboss-javaee6-webapp archetype. What's strange is that originally the test worked fine... However after using several times them. The following error started to appear:

       

      **Tests in error:

      com.ndeveloper.spec.test.GreetingBeanTest: Cannot obtain MBeanServerConnect to:               service:jmx:rmi:///jndi/rmi://127.0.0.1:1090/jmxrmi**

       

      The surefire report says the following:

       

          -------------------------------------------------------------------------------

          Test set: com.ndeveloper.spec.test.GreetingBeanTest

          -------------------------------------------------------------------------------

          Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.309 sec <<< FAILURE!

          com.ndeveloper.spec.test.GreetingBeanTest  Time elapsed: 0 sec  <<< ERROR!

          java.lang.IllegalStateException: Cannot obtain MBeanServerConnection to: service:jmx:rmi:///jndi/rmi://127.0.0.1:1090/jmxrmi

          at org.jboss.as.arquillian.container.MBeanServerConnectionProvider.getConnection(MBeanServerConnectionProvider.java:64)

          at org.jboss.as.arquillian.container.remote.RemoteDeployableContainer.getMBeanServerConnection(RemoteDeployableContainer.java:66)

          at org.jboss.as.arquillian.container.remote.RemoteDeployableContainer.startInternal(RemoteDeployableContainer.java:52)

          at org.jboss.as.arquillian.container.CommonDeployableContainer.start(CommonDeployableContainer.java:88)

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$5.perform(ContainerLifecycleController.java:144)

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$5.perform(ContainerLifecycleController.java:134)

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:182)

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startContainer(ContainerLifecycleController.java:133)

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

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

          at java.lang.reflect.Method.invoke(Method.java:597)

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

          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.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57)

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

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

          at java.lang.reflect.Method.invoke(Method.java:597)

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

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

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

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

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

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$2.perform(ContainerLifecycleController.java:83)

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$2.perform(ContainerLifecycleController.java:76)

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachContainer(ContainerLifecycleController.java:175)

          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startContainers(ContainerLifecycleController.java:75)

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

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

          at java.lang.reflect.Method.invoke(Method.java:597)

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

          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:134)

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

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

          at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:83)

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

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

          at java.lang.reflect.Method.invoke(Method.java:597)

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

          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:54)

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

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

          at java.lang.reflect.Method.invoke(Method.java:597)

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

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

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

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

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

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

          at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35)

          at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115)

          at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97)

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

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

          at java.lang.reflect.Method.invoke(Method.java:597)

          at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)

          at $Proxy0.invoke(Unknown Source)

          at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)

          at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)

          at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)

              Caused by: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:

          java.net.ConnectException: Connection refused: connect]

          at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:338)

          at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)

          at org.jboss.as.arquillian.container.MBeanServerConnectionProvider.getConnection(MBeanServerConnectionProvider.java:60)

          ... 69 more

              Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:

          java.net.ConnectException: Connection refused: connect]

          at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:101)

          at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:185)

          at javax.naming.InitialContext.lookup(InitialContext.java:392)

          at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1886)

          at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1856)

          at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:257)

          ... 71 more

      Caused by: java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:

          java.net.ConnectException: Connection refused: connect

          at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)

          at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)

          at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)

          at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)

          at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)

          at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:97)

          ... 76 more

      Caused by: java.net.ConnectException: Connection refused: connect

          at java.net.PlainSocketImpl.socketConnect(Native Method)

          at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)

          at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)

          at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)

          at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

          at java.net.Socket.connect(Socket.java:529)

          at java.net.Socket.connect(Socket.java:478)

          at java.net.Socket.<init>(Socket.java:375)

          at java.net.Socket.<init>(Socket.java:189)

          at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)

          at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)

          at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)

          ... 81 more

       

       

      And finally my arquillian.xml is configured like this:

       

          <?xml version="1.0" encoding="UTF-8"?>

          <arquillian xmlns="http://jboss.org/schema/arquillian"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://jboss.org/schema/arquillian

              http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

       

          <!-- Uncomment to have test archives exported to the file system for inspection -->

          <!--    <engine>  -->

          <!--       <property name="deploymentExportPath">target/</property>  -->

          <!--    </engine> -->

       

          <!-- Example configuration for a remote JBoss AS 7 instance -->

          <container qualifier="jboss" default="true">

            <protocol type="jmx-as7">

               <property name="executionType">REMOTE</property>

            </protocol>

            <configuration>

               <property name="jbossHome">D:\JavaWindows\servers\jboss-as-web-7.0.1.Final\jboss-as-web-7.0.1.Final</property>

            </configuration>

          </container>

       

        </arquillian>

       

       

      However I can't figure out why does arqullian stopped running the tests. As I told you before, they used to work... however after a settings change?? Idk.... this error started to appear.

       

      Just in case the test were run with the following command:

      **mvn clean test -Parq-jbossas-remote**

       

      Thanks a lot.