Injecting components into App scoped comp.
empy Jan 29, 2010 1:09 PMHi,
I'm pretty sure my problem has been solved already elsewhere but I cannot find it:
I have an app-scoped class EPaperSetup in which I inject an EntityManager. The component has a setup-method annotated with @Create where the entity manager is used. This works fine during the normal startup. When I use a SeamTest dreived class with testNG none of the injected components is there and I get a NullPointerException when accessing the entity manager.
Could point me in a direction?
What other info do you need?
Thanks a lot!
Here 's my code for EPaperSetup:
@Startup (depends="epaperConfiguration")
@Name("EPaperSetup")
@Scope(ScopeType.APPLICATION)
public class EPaperSetup{
...
@In
EntityManager entityManager;
...
@Create
public void setup() throws NoSuchAlgorithmException, UnsupportedEncodingException
{
EntityTransaction t = entityManager.getTransaction();
...
}
}
The test:
public class ListUserRoleActionTestNG extends SeamTest {
private EntityManagerFactory emf;
private EntityManager em;
@Test
public void testGetUserRoles() throws Exception {
new FacesRequest()
{
@Override
protected void invokeApplication()
{
invokeMethod("#{listUserRoleAction.userRoles}");
}
}.run();
}
}
and the error:
FAILED CONFIGURATION: @BeforeSuite startSeam org.jboss.seam.InstantiationException: Could not instantiate Seam component: EPaperSetup at org.jboss.seam.Component.newInstance(Component.java:2144) at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304) at org.jboss.seam.contexts.Contexts.startup(Contexts.java:296) at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278) at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:116) at org.jboss.seam.init.Initialization.init(Initialization.java:740) at org.jboss.seam.mock.AbstractSeamTest.startSeam(AbstractSeamTest.java:919) at org.jboss.seam.mock.SeamTest.startSeam(SeamTest.java:58) Caused by: java.lang.NullPointerException at i2.dnb.epaper.system.EPaperSetup.setup(EPaperSetup.java:52) at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
As I said before, I'm pretty sure this is a newbie error and somebody solved it.
Thanks for your help and best regards,
Mathias