With a complete definition of the Ship
EJB, including the remote interface, 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, Chapter 7, and Chapter 9. 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.0:
<!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> <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 1.1 deployment descriptor is exactly the same except for two
things. First, the <!DOCTYPE>
element
references EJB 1.1 instead of 2.0:
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
Second, the <security-identity>
element:
<security-identity><use-caller-identity/></security-identity>
is specific to EJB 2.0 and is not found in the EJB 1.1 deployment descriptor.
Please refer to Workbook Exercise 10.1, A BMP Entity Bean. This workbook is available free, in PDF format, at http://www.oreilly.com/catalog/entjbeans3/workbooks.