SessionContext

The javax.ejb.SessionContext interface provides a view into the EJB container’s environment. The SessionContext object can be used as the bean instance’s interface to the EJB container to obtain information about the context of the method invocation call and to provide quick access to various EJB services. A session bean can obtain a reference to its SessionContext by using the @Resource annotation:

   /**
    * SessionContext of this EJB; this will be injected by the EJB
    * Container because it's marked w/ @Resource
    */
   @Resource
   private SessionContext context;

SessionContext allows you to obtain information such as the current user that is invoking on the EJB, or to look up entries within the EJB’s Enterprise Naming Context (ENC). Let’s look at the javax.ejb.SessionContext interface:

public interface javax.ejb.SessionContext extends javax.ejb.EJBContext {
    EJBLocalObject getEJBLocalObject( ) throws IllegalStateException
    EJBObject getEJBObject( ) throws IllegalStateException;
    MessageContext getMessageContext( ) throws IllegalStateException;

    <T> getBusinessObject(Class<T> businessInterface)

throws IllegalStateException;
    Class getInvokedBusinessInterface( );
}

The getEJBObject() and getEJBLocalObject() methods are obsolete and will throw an exception if invoked upon. They are objects that are specific to the EJB 2.1 style of defining EJBs.

The SessionContext.getBusinessObject() method returns a reference to the current EJB that can be invoked by other clients. This reference is ...

Get Enterprise JavaBeans 3.1, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.