EJB - Injection did not work with JavaArchive
arakasi69 Oct 3, 2011 1:40 PMHello,
my environment is jboss as 7.0.2 and arqullian 1.0.0.CR1.
I've written a little test with some jpa entities and a session bean as a crud service. The test failed because the injected crud bean was null. I figured out, that the test is running if i create WebArchive.
import java.util.HashSet; import java.util.Set; import javax.ejb.EJB; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(Arquillian.class) public class PersistAccountTest { @EJB GenericCRUDControl<LocationEntity> locationCRUDControl; @EJB GenericCRUDControl<PersonEntity> personCRUDControl; @Deployment public static Archive<?> create(){ return ShrinkWrap.create(JavaArchive.class, "server.ja").addClasses(PersonEntity.class,RoleEntity.class,RightEntity.class,LocationEntity.class,GenericCRUDControl.class).addAsManifestResource("persistence.xml", "persistence.xml"); } @Test public void testCreatingSimpleAccount(){ RoleEntity roleEntity = new RoleEntity(); roleEntity.setName("admin"); PersonEntity personEntity = new PersonEntity(); personEntity.setName("Thomas"); personEntity.setRoleEntity(roleEntity); Set<RoleEntity> roles = new HashSet<RoleEntity>(); roles.add(roleEntity); LocationEntity locationEntity = new LocationEntity(); locationEntity.setInheritanceDepth(20); locationEntity.setName("Root"); locationEntity.setRoles(roles); Assert.assertNotNull("The location crud control must not be null", locationCRUDControl); Assert.assertNotNull("The person crud control must not be null", personCRUDControl); locationCRUDControl.create(locationEntity); personCRUDControl.create(personEntity); } }
I've run the test in managed container and aso in remote container. The remote container was started with the standalone configuration and also with the standalone-preview configuration.
Has anybody a hint, how to get running the test in a java archive without failures ?
Kind regards, Thomas