@Unwrap from SFSB and session timeout issue
jazir1979 Jan 4, 2007 10:30 PMHi folks,
I have a "UserManager" SFSB Seam component with session scope that uses the @Unwrap annotation to unwrap a User entity bean. I believe this is the "manager component" pattern described in the Seam reference guide.
I am doing it this way because I don't want my User entity to be a seam component in its own right, and I want clustering/state replication to occur on my UserManager SFSB that has the User as an instance variable.
This all works really well until a session timeout occurs - Seam tries to find a destroy() method on the User entity bean instead of the UserManager SFSB!!
Here is the stacktrace:
java.lang.IllegalArgumentException: method not found: destroy for component: user (check that it is declared on the session bean business interface) at org.jboss.seam.Component.callComponentMethod(Component.java:1809) at org.jboss.seam.Component.callDestroyMethod(Component.java:1747) at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:189) at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:230) at org.jboss.seam.servlet.SeamListener.sessionDestroyed(SeamListener.java:45) at org.apache.catalina.session.StandardSession.expire(StandardSession.java:687) at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:579) at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:678) at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:663) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1284) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558) at java.lang.Thread.run(Thread.java:595) Caused by: java.lang.NoSuchMethodException: entity.User.destroy() at java.lang.Class.getMethod(Class.java:1581) at org.jboss.seam.Component.callComponentMethod(Component.java:1788) ... 14 more
Is this behaviour expected?
cheers,
Daniel.