2 Replies Latest reply on Dec 10, 2012 4:49 PM by Marcel Schott

    Arquillian & jBoss 7.1.1: Test failed

    Marcel Schott Newbie

      hey

       

      ich have some problems with my configuration.

       

      I have two projects... the mainprojekt and a arquillian-test-project. In the arquillian-project there are only the tests for the main-project.

       

      pom.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="
      http://maven.apache.org/POM/4.0.0
      http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
      
          <groupId>de.java.arquillian</groupId>
          <artifactId>arquillian-swt</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          
          <name>Arquillian-Projekt</name>
          
          <properties>
              <arquillian.version>1.0.3.Final</arquillian.version>
          </properties>
          
      
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>2.3.2</version>
                      <configuration>
                          <source>1.6</source>
                          <target>1.6</target>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
          
            <dependencyManagement>
              <dependencies>
                  <dependency>
                      <groupId>org.jboss.arquillian</groupId>
                      <artifactId>arquillian-bom</artifactId>
                      <version>${arquillian.version}</version>
                      <scope>import</scope>
                      <type>pom</type>
                  </dependency>
              </dependencies>
          </dependencyManagement>
          
          <repositories>
              <repository>
                  <id>jboss-public-repository</id>
                  <name>JBoss Repository</name>
                  <url>https://repository.jboss.org/nexus/content/groups/public</url>
                  <releases>
                      <updatePolicy>never</updatePolicy>
                  </releases>
                  <snapshots>
                      <updatePolicy>daily</updatePolicy>
                  </snapshots>
              </repository>
              
              <repository>
                  <id>jboss-deprecated-repository-group</id>
                  <name>JBoss Deprecated Maven Repository Group</name>
                  <url>https://repository.jboss.org/nexus/content/repositories/deprecated/</url>
                  <releases>
                      <enabled>true</enabled>
                      <updatePolicy>never</updatePolicy>
                  </releases>
                  <snapshots>
                      <enabled>true</enabled>
                      <updatePolicy>never</updatePolicy>
                  </snapshots>
              </repository>
          </repositories>
          
          <dependencies>
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.8.2</version>
                  <scope>test</scope>
              </dependency>
      
              <dependency>
                  <groupId>org.jboss.arquillian.junit</groupId>
                  <artifactId>arquillian-junit-container</artifactId>
                  <scope>test</scope>
              </dependency>
          </dependencies>
          
          <profiles>
              <profile>
                  <id>jbossas-remote-7</id>
                  <dependencies>
                      <dependency>
                          <groupId>org.jboss.spec</groupId>
                          <artifactId>jboss-javaee-6.0</artifactId>
                          <version>1.0.0.Final</version>
                          <type>pom</type>
                          <scope>provided</scope>
                      </dependency>
                      
                      <dependency>
                          <groupId>org.jboss.as</groupId>
                          <artifactId>jboss-as-arquillian-container-remote</artifactId>
                          <version>7.1.1.Final</version>
                      </dependency>
                  </dependencies>
              </profile>
          </profiles>
      </project>
      

       

      src/test/resources/arquillian.xml

      <?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">
          <engine>
              <property name="deploymentExportPath">target</property>
          </engine>
          <container qualifier="jbossas-remote-7" default="true">
              <configuration>
                  <property name="providerUrl">jnp://localhost:80</property>
              </configuration>
          </container>
      </arquillian>
      

       

      src/main/resources/META-INF/persistence.xml

      <persistence xmlns="http://java.sun.com/xml/ns/persistence"  
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
                   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"  
                   version="2.0">  
          <persistence-unit name="BankUnit" transaction-type="JTA">
              <provider>org.hibernate.ejb.HibernatePersistence</provider>
              
              <!-- Datenquelle ist PostGres -->
              <jta-data-source>java:jboss/datasources/PostgresDS</jta-data-source> 
              
              <properties>                
                  <!-- Konfiguration für den PostGreSQL-Dialekt -->
                  <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
                  
                  <!-- Sicherheitseinstellungen -->
                  <property name="hibernate.hbm2ddl.auto" value="update"/>
                  <property name="hibernate.show_sql" value="false"/>
                  <property name="hibernate.format_sql" value="false"/>
                  <property name="hibernate.use_sql_comments" value="false"/>
                  <property name="hibernate.archive.autodetection" value="class"/>
              </properties>
          </persistence-unit>
      </persistence>
      

      (this is the same one like in the mainproject)

       

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

       

       

      i've written a small class to test in my mainproject...

      public class Greeter {
          public void greet(PrintStream to, String name) {
              to.println(createGreeting(name));
          }
      
          public String createGreeting(String name) {
              return "Hello, " + name + "!";
          }
      }
      

       

      ...and a small test in the arquillian-project

      @RunWith(Arquillian.class)
      public class GreeterTest {
      
          @Deployment
          public static JavaArchive createDeployment() {
              return ShrinkWrap.create(JavaArchive.class, "test.jar")
                     .addClass(Greeter.class)
                     .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
          }
      
          @Inject
          Greeter greeter;
      
          @Test
          public void should_create_greeting() {
              Assert.assertEquals("Hello, Earthling!",
              greeter.createGreeting("Earthling"));
              greeter.greet(System.out, "Earthling");
          }
      }
      

       

      If the server runs and i start the test, the tests ends without failures.

       

      Now i want to make a little test for the crud-methods of my project:

      @RunWith(Arquillian.class)
      public class CrudTest {
          @Deployment
          public static Archive<?> createDeployment() {
              return ShrinkWrap.create(WebArchive.class, "test.war")
                     .addClasses(Bank.class, BankCRUD.class)
                     .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
                     .addAsManifestResource("META-INF/persistence.xml", 
                             ArchivePaths.create("persistence.xml"))
                     .addAsManifestResource(EmptyAsset.INSTANCE, 
                             ArchivePaths.create("ejb-jar.xml"));
          }
          
          @Inject
          BankCRUD bankCrud;
          
          @Test
          public void testSave() throws Exception {
              Bank bank = new Bank();
              bank.setName("Testbank");
              bank.setSortCode(12345);
              
              bankCrud.save(bank);
              
              Bank pBank = bankCrud.loadInstance(bank.getId());
              assertNotNull(pBank);
          }
      
      }
      

      (Bank is an entity, BankCRUD is a stateful-class with CRUD-methods & the EntityManager-Instance)


      Now, if i start the test, it ends with the following failure:

       

      org.jboss.arquillian.container.spi.client.container.DeploymentException: Could not deploy to container: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"test.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"crudTest.war\".POST_MODULE: Failed to process phase POST_MODULE of deployment \"crudTest.war\""}}
       at org.jboss.as.arquillian.container.ArchiveDeployer.deploy(ArchiveDeployer.java:74)
       at org.jboss.as.arquillian.container.CommonDeployableContainer.deploy(CommonDeployableContainer.java:148)
       at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:161)
       at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:128)
       at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:271)
       at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:127)
       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.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
       at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
       at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
       at ...
      


      can somebody check my configuration, pls?
      i'm very frustrated