With a complete definition of the Ship
EJB, including the remote interface, remote home interface, and
primary key, we are ready to create a deployment descriptor. XML
deployment descriptors for bean-managed entity beans are a little
different from the descriptors we created for the container-managed
entity beans in Chapter 6 and Chapter 7. In this deployment descriptor, the
<persistence-type>
is
Bean
and there are no
<container-managed>
or
<relationship-field>
declarations. We also
must declare the
DataSource
resource factory that we use to query and update the database.
Here is the deployment descriptor for EJB 2.1:
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1"> <enterprise-beans> <entity> <description> This bean represents a cruise ship. </description> <ejb-name>ShipEJB</ejb-name> <home>com.titan.ship.ShipHomeRemote</home> <remote>com.titan.ship.ShipRemote</remote> <ejb-class>com.titan.ship.ShipBean</ejb-class> <persistence-type>Bean</persistence-type> <prim-key-class>java.lang.Integer</prim-key-class> <reentrant>False</reentrant> <security-identity><use-caller-identity/></security-identity> <resource-ref> <description>DataSource for the Titan database</description> <res-ref-name>jdbc/titanDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </entity> </enterprise-beans> <assembly-descriptor> <security-role> <description> This role represents everyone who is allowed full access to the Ship EJB. </description> <role-name>everyone</role-name> </security-role> <method-permission> <role-name>everyone</role-name> <method> <ejb-name>ShipEJB</ejb-name> <method-name>*</method-name> </method> </method-permission> <container-transaction> <method> <ejb-name>ShipEJB</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>
The EJB 2.0 deployment descriptor is exactly the same except for one
thing. It uses a DTD instead of XML schema so there is a
<!DOCTYPE>
element declaration instead of
XML Schema attribute declarations.
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> <ejb-jar> <enterprise-beans>
Exercise 9.1 in the Workbook shows how to deploy the examples in this section.