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