Can some one explain why in setSessionContext method, I cannot get a reference to the EJB object? Why can't I just call getEJBObject() of session context? Thanks.
The container hasn't finished creating the ejb object yet. When you ask your context for the ejb object, you are expecting to get a reference to an object that is completely ready for use.... but setSessionContext is one of the very methods that the container is invoking in order to get the ejb object ready to be used. Its just too early in the lifecycle.
The sequence is Constructor, setSessionContext and then ejbCreate. The ejbObject is created only at the point of ejbCreate call. So setSesionContext is little too early for the getEJBObject() call. Dilli
you can call getEJBhome() because it is already there but not getEJBobject() because it is not yet formed totally ...i mean a session bean (stateful) is linked with its sessioncontext & ejbObject only after setSessionContext() and ejbCreate() are called,so a Session bean knows its EJBObject after ejbCreate(). hope this helps.
SCJP1.4,SCBCD
Failure is not when you fall down; its only when you fail to get up again.