It defines methods: ejbRemove and setMessageDrivenContext.
What Constitutes an EJB?
EJB Object
Client never invokes methods directly on an actual bean instance. All invocations go through the EJB object, which is a tool-generated class. Message requests are intercepted by the EJB object and then delegated to the actual bean instance. That is why it is called a request interceptor.
Remote Interface
A bean class exposes business methods that are cloned by the EJB object. But
how do the tools that generate the EJB object know which methods to clone? The
answer is the remote interface. This interface duplicates all the methods that
the corresponding bean class exposes (remember that they must comply with the
EJB specification). Remote clients then access the bean via this remote
interface. All remote interfaces must extend javax.ejb.EJBObject.
Home Object
How do clients acquire references to EJB objects? The client asks for the EJB
object from the EJB object factory. This factory is responsible for
instantiating and destroying the EJB objects. This factory is called the Home
object.
Home Interface
How does a home object know how you would like to initialize your EJB object?
This information is provided to the container through the home interface. The
home interface contains the methods for creating, destroying, and finding EJB
objects. All home interfaces are derived from the javax.ejb.EJBHome interface
and all home objects implement the home interface. This interface extends
java.rmi.Remote.
Local Interfaces
Creating beans through the home interface and then calling the beans though
the remote interface is very slow. Local interfaces speed up beans' calls. Use
local objects (implemented from a local interface rather than from a remote
interface) instead of EJB objects whenever possible. Also, use local home
objects (implemented from a local home interface rather than from a home
interface) instead of home objects. Local interfaces extend
javax.ejb.EJBLocalObject and local home interfaces extend javax.ejb.EJBLocalHome.
Deployment Descriptors
You state your deployment configuration in the deployment descriptor file named ejb-jar.xml. Different application servers may have their own additional proprietary deployment descriptor files. These XML files can either be edited by hand or with a tool provided by the container vendor. You can specify:
Bean management and lifecycle
requirements.
Persistence requirements for
entity beans.
Transaction requirements.
Security requirements,
including access control entries.
EJB-JAR file
Once you have finished compiling your classes and creating all of the
necessary configuration files, you can place all of these files into an EJB-JAR
file for deployment. EJB-JAR files are zip files that contain Java classes and
all the other files needed for deployment. You can generate these files by hand
or with tools, such as Apache Ant.