[jboss-user] [JBoss Seam] - @Unwrap from SFSB and session timeout issue

jazir1979 do-not-reply at jboss.com
Thu Jan 4 22:30:59 EST 2007


Hi 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.


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3998144#3998144

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3998144



More information about the jboss-user mailing list