The following are the requirements for the session bean’s REMOTE HOME interface:
- The interface MUST extend the javax.ejb.EJBHome interface.
.
- The methods defined in this interface MUST follow the rules for RMI/IIOP. This means that their argument and return values MUST be of valid types for RMI/IIOP, and that their throws clauses MUST include the java.rmi.RemoteException.
.
- The remote home interface is allowed to have superinterfaces. Use of interface inheritance is subject to the RMI/IIOP rules for the definition of remote interfaces.
.
- A session bean’s remote home interface MUST define one or more create< METHOD >(...) methods. (NOTE, Entity Beans may define ZERO create(...) methods). A STATELESS session bean must define exactly ONE create() method with NO arguments.
.
- Each create method MUST be named “create< METHOD >”, and it MUST match one of the ejbCreate< METHOD > methods defined in the session bean class. The matching ejbCreate< METHOD > method MUST have the same number and types of arguments. (Note that the return type is different.) The methods for a STATELESS session bean MUST be named “create” and “ejbCreate”.
.
- The return type for a create< METHOD > method MUST be the session bean’s REMOTE INTERFACE type.
.
- All the exceptions defined in the throws clause of an ejbCreate< METHOD > method of the session bean class must be defined in the throws clause of the matching create< METHOD > method of the remote home interface.
.
- The throws clause of create< METHOD >(...) MUST include javax.ejb.CreateException.
.
- The following are the requirements for the session bean’s LOCAL [component] interface:
.
- The interface MUST extend the javax.ejb.EJBLocalObject interface.
.
- The throws clause of a method defined in the LOCAL interface MUST NOT include the java.rmi.RemoteException.
.
- The local interface is allowed to have superinterfaces.
.
- For each method defined in the local interface, there must be a matching method in the session bean’s class. The matching method must have:
- The same name.
- The SAME number and types of arguments, and the SAME return type.
- All the exceptions defined in the throws clause of the matching method of the session bean class must be defined in the throws clause of the method of the local interface.
The following are the requirements for the session bean’s LOCAL HOME interface:
- The interface MUST extend the javax.ejb.EJBLocalHome interface.
.
- The throws clause of a method in the LOCAL home interface MUST NOT include the java.rmi.RemoteException.
.
- The local home interface is allowed to have superinterfaces.
.
- A session bean’s local home interface MUST define one or more create< METHOD >(...) methods. A STATELESS session bean MUST define exactly ONE create() method with NO arguments.
.
- Each create method MUST be named “create< METHOD >”, and it MUST match one of the ejbCreate< METHOD > methods defined in the session bean class. The matching ejbCreate< METHOD > method MUST have the same number and types of arguments. (Note that the return type is different.) The methods for a STATELESS session bean MUST be named “create” and “ejbCreate”.
.
- The return type for a create< METHOD > method MUST be the session bean’s local interface type.
.
- All the exceptions defined in the throws clause of an ejbCreate< METHOD > method of the session bean class MUST be defined in the throws clause of the matching create< METHOD > method of the local home interface.
.
- The throws clause of create< METHOD > method MUST include javax.ejb.CreateException.
__________________
Author: Mikalai Zaikin. Please Click Here to visit Authors site for any updates and changes to the study notes.
First Page: SCBCD Study Notes : Chapter 3 : Session Bean Component Contract (Part 2)