Accessing SFSB @Startup
asiandub Sep 30, 2008 10:33 AMHello,
I'm stuck with the following problem and am starting to doubt my understanding of bijection and the component model.
For some reason I am unable to access a stateful session bean AT STARTUP from within component.
Here is the scenario:
At the startup of the (web-)session I want to store an ActorConfig object in the session scope. In order to create the object, I need to call a method at an stateful session bean. This returns a null-pointer exception.
Is there a conceptual misunderstanding of mine?
Many thanks for help,
Jan
As Code:
@Scope(ScopeType.SESSION) @Startup(depends = { "clientManager", "clientList" }) @Name("internetInit") public class InternetInitialization implements Serializable { @Out(scope = ScopeType.SESSION, value = ActorConfig.CONTEXT_ID, required = true) private ActorConfig actorConfig; @In(create = true) private ClientManagerLocal clientManager; @Create public void initInternet() { Client client = clientManager.getClientByClientcode("SFDE"); actorConfig = new ActorConfig(client); }
...
@Stateful @Name("clientManager") public class ClientManager implements ClientManagerLocal { @In(create = true) private ClientList clientList; public Client getClientByClientcode(String clientcode) { [line 36] return clientList.getClientByClientcode(clientcode); }
...
@Name("clientList") public class ClientList extends EntityQuery<Client> {
And here is the exception:
09:32:17,154 ERROR [[/myProject]] Session event listener threw exception org.jboss.seam.InstantiationException: Could not instantiate Seam component: internetInit at org.jboss.seam.Component.newInstance(Component.java:1986) at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304) at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278) at org.jboss.seam.contexts.Lifecycle.beginSession(Lifecycle.java:191) ... Caused by: javax.ejb.EJBException: java.lang.NullPointerException at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) ... Caused by: java.lang.NullPointerException at com.myProject.client.ClientManager.getClientByClientcode(ClientManager.java:36) 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:585)