programmera.net -> ejb -> normal     för utskrift      info@programmera.net

SessionContext för en tillståndslös sessionsböna

1. SessionContext
2. Tillåtna anrop på SessionContext och övriga externa resurser

1. SessionContext

En sessionsböna kommunicerar med behållaren genom klassen SessionContext. En referens till en instans av SessionContext tilldelas bönan genom att behållaren anropar setSessionContext() då bönan initieras. SessionContext ärver av EJBContext och tillför två egna metoder, se bilden:



2. Tillåtna anrop på SessionContext och övriga externa resurser

Metoderna i SessionContext kan inte anropas var som helst i en tillståndslös sessionsböna. Nedan visas vilka anrop som är tillåtna för en tillståndslös sessionsböna mot SessionContext och övriga externa resurser:

SessionContext och externa resurser Constructor setSessionContext() ejbCreate() eller ejbRemove() affärsmetod 
Tillgång till JNDI  Nej  Ja  Ja  Ja
Tillgång till andra bönor  Nej  Nej  Nej  Ja
Tillgång till resurshanterare  Nej  Nej  Nej  Ja
getEJBHome()  Nej  Ja  Ja  Ja
getEJBLocalHome()  Nej  Ja  Ja  Ja
getCallerPrincipal()  Nej  Nej  Nej  Ja
isCallerInRole()  Nej  Nej  Nej  Ja
getUserTransaction() [BMT]  Nej  Nej  Ja  Ja
getRollbackOnly() [CMT]  Nej  Nej  Nej  Ja
setRollbackOnly() [CMT]  Nej  Nej  Nej  Ja

Om du gör ett anrop som inte är tillåtet kommer undantaget java.lang.IllegalStateException att kastas. Märk följande:

  • Eftersom en tillståndslös sessionsböna inte skapas eller tas bort av en klient, kan man inte komma åt transaktionsmiljön eller säkerhetsmetoder i "ejbCreate()" eller "ejbRemove()".