Java Reference
In-Depth Information
L
ISTING
12.2
Continued
public interface CalculateLoanHome extends EJBHome
{
public CalculateLoan create()
throws RemoteException, CreateException;
}
This is a simple interface that has only a few rules to follow. Now we will look at the bean
class and some of the more difficult to understand rules that the specification imparts to EJB
code.
12
Bean Class
The bean class holds the implementation for the EJB. It has certain requirements in relation to
both the home and remote interfaces. The rules related to each interface are different, so we
will go through them independently.
First we will cover the general requirements for the session bean's bean class. It must imple-
ment the
javax.ejb.SessionBean
interface. In implementing
SessionBean
, four methods
must be implemented:
ejbActivate()
,
ejbPassivate()
,
ejbRemove()
, and
setSessionContext()
. All of these methods will be discussed briefly later in the chapter.
The class must contain a public constructor that takes no arguments. This is the only construc-
tor that is useful in any EJB because all client construction of these beans is done through the
create()
methods.
The first requirement is related to the home interface. For each
create()
method in the home
interface, the bean class must have an
ejbCreate()
method with an argument list that exactly
matches the signature of the corresponding
create()
method. The
ejbCreate()
method also
defines the same
throws
clause as the matching
create()
method. Each
ejbCreate()
method
must be public and return void. The following code snippet gives an example of a
create()
method from a home interface and the matching
ejbCreate()
method that would exist in the
bean class:
public BeanRemote create(Integer number)
throws RemoteException, CreateException, AppDefinedException;
public void ejbCreate(Integer number)
throws RemoteException, CreateException, AppDefinedException
{
this.number = number;
}