Hello,
my application is throwing an EJBException when trying to passivate a SFSB (sesionList) which is in APPLICATION context, the stack trace shows the problem is a RequiredException thrown by another SFSB (userHandler) bound to SESSION context which has a reference to the former bean.
This exception occurs even if I just start the server and let it alone. But why? at that moment there hadn't been any session beans instantiated.
Here I reproduce the declarations of both beans:
@Stateful @Scope(ScopeType.APPLICATION) @Startup @Name("sesionList") public class SesionListImpl implements SesionList { ...
@Stateful @Scope(ScopeType.SESSION) @Name("userHandler") public class UserHandlerImpl implements UserHandler { @In SesionList sesionList ; @In User user ; ....
And here is some fragment of the exception:
01:11:08,953 ERROR [SesionList] problem passivation thread java.lang.RuntimeException: javax.ejb.EJBException: org.jboss.seam.RequiredException: @In attribute requires non-null value: userHandler.user at org.jboss.ejb3.interceptor.LifecycleInterceptorHandler.prePassivate(LifecycleInterceptorHandler.java:169) at org.jboss.ejb3.stateful.StatefulContainer.invokePrePassivate(StatefulContainer.java:406) ... Caused by: javax.ejb.EJBException: org.jboss.seam.RequiredException: @In attribute requires non-null value: userHandler.user at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
Could someone please explain why the Session scoped bean (userHandler) is been instantiated when the application scoped one is about to be passivated?
Remember I don't try to use the application, I just wait a while after startup and this exception happens by itself.
regards
Hi Gerardo
Please try this...
@In(required = false, create = true) SesionList sesionList;