EJBContext

Mit dem EJBContext kann ein Bean etwas über den Kontext erfahren, in dem es ausgeführt wird. Wenn Bean Managed Transactions (siehe Bean-Managed Transaction) verwendet werden, kann man aus dem EJBContext die UserTransaction erhalten und damit die Transaktionssicherung beeinflussen.

Innerhalb eines Beans kann man mit der Deklaration

@Resource
EJBContext ejbContext;

den EJBContext an eine Instanzvariable zuweisen lassen.

Der EJBContext hat die folgenden Methoden:

Principal getCallerPrincipal()
-- Obtain the java.security.Principal that identifies the caller.

EJBHome getEJBHome()
-- Obtain the enterprise bean's remote home interface.

EJBLocalHome getEJBLocalHome()
-- Obtain the enterprise bean's local home interface.

boolean getRollbackOnly()
-- Test if the transaction has been marked for rollback only.

TimerService getTimerService()
-- Get access to the EJB TimerService.

UserTransaction getUserTransaction()
-- Obtain the transaction demarcation interface (for Bean-Managed Transaction)

boolean isCallerInRole(String roleName)
-- Test if the caller has a given security role.

Object lookup(String name)
-- Lookup a resource within the component's private naming context.

void setRollbackOnly()
-- Mark the current transaction for rollback.


Der SessionContext und der MessageDrivenContext sind Spezialisierungen des EJBContexts für Session Beans und Message-Driven Beans. Der MessageDrivenContext hat keine zusätzlichen Methoden.