The following are the requirements for session BEAN CLASS:
The class MUST implement, directly or indirectly, the javax.ejb.SessionBean interface.
The class MUST be defined as public, MUST NOT be final, and MUST NOT be abstract (NOTE, CMP ENTITY bean class MUST be abstract).
The class MUST have a public constructor that takes NO parameters. The Container uses this constructor to create instances of the session bean class.
The class MUST NOT define the finalize() method.
The class may, but is not required to, implement the session bean’s component interface (NOTE: AVOID passing of this).
The class MUST implement the business methods and the ejbCreate methods.
If the class is a STATEFUL session bean, it may optionally implement the javax.ejb.SessionSynchronization interface.
The session bean class may have superclasses and/or superinterfaces. If the session bean has superclasses, then the business methods, the ejbCreate<METHOD> methods, the methods of the SessionBean interface, and the methods of the optional SessionSynchronization interface may be defined in the session bean class, or in any of its superclasses.
The session bean class is allowed to implement other methods (for example helper methods invoked internally by the business methods) in addition to the methods required by the EJB specification.
The session BEAN CLASS may define zero or more business methods whose signatures must follow these rules:
The method names can be arbitrary, but they MUST NOT start with “ejb” to avoid conflicts with the callback methods used by the EJB architecture.
The business method MUST be declared as public.
The method MUST NOT be declared as final or static.
The argument and return value types for a method MUST be legal types for RMI/IIOP if the method corresponds to a business method on the session bean’s remote interface.
The throws clause may define arbitrary application exceptions.
The session BEAN CLASS must define one or more ejbCreate<METHOD>(...) methods whose signatures must follow these rules:
The method name MUST have ejbCreate as its prefix.
The method MUST be declared as public.
The method MUST NOT be declared as final or static.
The return type MUST be void.
The method arguments MUST be legal types for RMI/IIOP if there is a create<METHOD>(...) corresponding to the ejbCreate<METHOD>(...) method on the session bean’s remote home interface.
The throws clause may define arbitrary application exceptions, possibly including the javax.ejb.CreateException.
The following are the requirements for the session bean’s REMOTE [component] interface:
The interface MUST extend the javax.ejb.EJBObject 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 their throws clauses must include the java.rmi.RemoteException.
The remote interface is allowed to have superinterfaces. Use of interface inheritance is subject to the RMI/IIOP rules for the definition of remote interfaces.
For each method defined in the remote 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 remote interface.
The remote interface methods must not expose local interface types, local home interface types, or the managed collection classes that are used for entity beans with container-managed persistence as arguments or results.
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.
![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |