EJB Page Properties

Tapestry make a single, special case for one particular type of persistent page property: references to Enterprise JavaBeans.

The page recorders check to see if a page property is type javax.ejb.EJBObject. If so, they don't store the object itself (EJBObjects are not directly serializable), instead they get the Handle for the object and store that instead (Handles are serializable).

When the page is next accessed, the Handle is converted back into an EJBObject before assigning it to the page property.

A side effect of this is that you may not have a Handle as a persistant page property; the page recorders don't have a way to differentiate a Handle from an EJBObject converted to a Handle and always assume the latter.