| <html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The openejb-jar.xml file</title><link href="default.css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff"><a name="top"></a><table height="400" width="712" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2" align="left" valign="top" width="20"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td bgcolor="#7270c2" align="left" valign="top" width="95"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="7"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td><td align="left" valign="top" width="440"><img border="0" height="6" width="440" src="images/top_2.gif"></td><td align="left" valign="top" width="240"><img src="images/top_3.gif" width="240" height="6" border="0"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#ffffff" width="7"></td><td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="middle" width="440"><span class="bodyBlack"><a href="faq.html">FAQ</a></span><img border="0" height="13" width="20" src="images/grayDot.gif"><span class="bodyBlack"><a href="faq_openejb-jar.html">openejb-jar.xml</a></span><br><img border="0" height="2" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" height="20" width="240"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img border="0" height="3" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td><td align="left" valign="top" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td><td align="left" valign="top" width="440"><img border="0" height="3" width="440" src="images/line_light.gif"></td><td align="left" valign="top" width="240"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2"><img border="0" height="10" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="2" width="1" src="images/dotTrans.gif"><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Main</span></td></tr><tr><td align="left" valign="top"><a href="index.html"><span class="subMenuOff"> |
| Welcome!</span></a></td></tr><tr><td align="left" valign="top"><a href="download.html"><span class="subMenuOff"> |
| Download</span></a></td></tr><tr><td align="left" valign="top"><a href="lists.html"><span class="subMenuOff"> |
| Mailing Lists</span></a></td></tr><tr><td align="left" valign="top"><a href="cvs.html"><span class="subMenuOff"> |
| Source Code</span></a></td></tr><tr><td align="left" valign="top"><a href="contributors.html"><span class="subMenuOff"> |
| The Team</span></a></td></tr><tr><td align="left" valign="top"><a href="status.html"><span class="subMenuOff"> |
| Status</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Users</span></td></tr><tr><td align="left" valign="top"><a href="quickstart.html"><span class="subMenuOff"> |
| Quickstart</span></a></td></tr><tr><td align="left" valign="top"><a href="hello-world.html"><span class="subMenuOff"> |
| Hello World!</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_entity_postgresql.html"><span class="subMenuOff"> |
| CMP Example</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_guide.html"><span class="subMenuOff"> |
| CMP Guide</span></a></td></tr><tr><td align="left" valign="top"><a href="deploy.html"><span class="subMenuOff"> |
| Deploy</span></a></td></tr><tr><td align="left" valign="top"><a href="start-command.html"><span class="subMenuOff"> |
| Startup</span></a></td></tr><tr><td align="left" valign="top"><a href="validate.html"><span class="subMenuOff"> |
| Validation</span></a></td></tr><tr><td align="left" valign="top"><a href="config_containers.html"><span class="subMenuOff"> |
| Configuration</span></a></td></tr><tr><td align="left" valign="top"><a href="properties.html"><span class="subMenuOff"> |
| Properties</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Servers</span></td></tr><tr><td align="left" valign="top"><a href="embedded.html"><span class="subMenuOff"> |
| Local Server</span></a></td></tr><tr><td align="left" valign="top"><a href="remote-server.html"><span class="subMenuOff"> |
| Remote Server</span></a></td></tr><tr><td align="left" valign="top"><a href="tomcat.html"><span class="subMenuOff"> |
| Tomcat</span></a></td></tr><tr><td align="left" valign="top"><a href="geronimo.html"><span class="subMenuOff"> |
| Geronimo</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Integrators</span></td></tr><tr><td align="left" valign="top"><a href="whyopenejb.html"><span class="subMenuOff"> |
| Why OpenEJB</span></a></td></tr><tr><td align="left" valign="top"><a href="containersystem.html"><span class="subMenuOff"> |
| Overview</span></a></td></tr><tr><td align="left" valign="top"><a href="design_openejb.html"><span class="subMenuOff"> |
| Design</span></a></td></tr><tr><td align="left" valign="top"><a href="OpenEJB_presentaion.ppt"><span class="subMenuOff"> |
| Presentation</span></a></td></tr></table><img border="0" height="15" width="1" src="images/dotTrans.gif"><br><img border="0" height="3" width="105" src="images/line_sm.gif"><br><A href="http://codehaus.org"><IMG alt="The Codehaus" border="0" height="17" width="88" src="http://www.openejb.org/codehaus-smaller.png"></A></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"> </td><td align="left" valign="top" width="40"> </td><td valign="top" width="440" rowspan="4"><p></p><table width="100%" cellspacing="2" cellpadding="4"><tr><td align="left" valign="top"><br><img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0"><br><img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br></td></tr><tr><td><span class="pageTitle"><name>The openejb-jar.xml file</name></span></td></tr><tr><td><ul><li><span class="toc"><a href="#general">What is an openejb-jar.xml?</a></span></li><li><span class="toc"><a href="#use">When is the openejb-jar.xml used?</a></span></li><li><span class="toc"><a href="#deploy.tool">Do I even need the deploy tool then?</a></span></li><li><span class="toc"><a href="#where">Where do I put the openejb-jar.xml in my jar?</a></span></li><li><span class="toc"><a href="#easy">Is the file format easy?</a></span></li><li><span class="toc"><a href="#jdbc">What if my bean uses a JDBC datasource?</a></span></li><li><span class="toc"><a href="#resource-link">How many resource-link elements will I need?</a></span></li></ul></td></tr><tr><td><a name="general"><h2>What is an openejb-jar.xml?</h2></a><answer id="general"> |
| <p><span class="bodyBlack"> |
| This is the file created by the Deploy Tool that maps your bean's deployment descriptor (ejb-jar.xml) to actual containers and |
| resources declared in your OpenEJB configuration (openejb.conf). In fact, the Deploy tool really does nothing more than create this |
| file and put it in your jar, that's it. |
| </span></p> |
| </answer></td></tr><tr><td><a name="use"><h2>When is the openejb-jar.xml used?</h2></a><answer id="use"> |
| <p><span class="bodyBlack"> |
| At startup, any jar containing a openejb-jar.xml is loaded by the container system. The configuration tools will go looking in all the |
| directories and jars you have declared in your openejb.conf with the <Deployment> element. For every jar file it finds, it will look |
| inside for an openejb-jar.xml. If it finds one, it will attempt to load and deploy it into the container system. </span></p> |
| </answer></td></tr><tr><td><a name="deploy.tool"><h2>Do I even need the deploy tool then?</h2></a><answer id="deploy.tool"> |
| <p><span class="bodyBlack"> |
| Nope. Typically you would only use the deploy tool to create your openejb-jar.xml, then just keep your openejb-jar.xml in your CVS (or other repository). |
| If you learn how to maintain this openejb-jar.xml file, you'll never need the deploy tool again! You can do all your builds and deploys |
| automatically. |
| </span></p> |
| </answer></td></tr><tr><td><a name="where"><h2>Where do I put the openejb-jar.xml in my jar?</h2></a><answer id="where"> |
| <p><span class="bodyBlack"> |
| The openejb-jar.xml file just goes in the META-INF directory of your jar next to the ejb-jar.xml file. |
| </span></p> |
| </answer></td></tr><tr><td><a name="easy"><h2>Is the file format easy?</h2></a><answer id="easy"> |
| <p><span class="bodyBlack"> |
| If you can understand the ejb-jar.xml, the openejb-jar.xml should be a breeze. |
| </span></p> |
| <p><span class="bodyBlack"> |
| This is the openejb-jar.xml that is created by the Deploy tool |
| in the Hello World example. As you can see, the file |
| format is extremely simple. |
| </span></p> |
| <table width="420" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">openejb-jar.xml</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre> |
| <?xml version="1.0"?> |
| <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"> |
| <ejb-deployment ejb-name="Hello" |
| deployment-id="Hello" |
| container-id="Default Stateless Container"/> |
| </openejb-jar></pre></span></td></tr></table> |
| <p><span class="bodyBlack"> |
| The <b>ejb-name</b> attribute is the name you gave the bean in your |
| ejb-jar.xml. The <b>deployment-id</b> is the name you want to use to |
| lookup the bean in your client's JNDI namespace. The |
| <b>container-id</b> |
| is the name of the container in your openejb.conf file that you would |
| like the bean to run in. There MUST be one <b>ejb-deployment</b> |
| element for each EJB in your jar. |
| </span></p> |
| </answer></td></tr><tr><td><a name="jdbc"><h2>What if my bean uses a JDBC datasource?</h2></a><answer id="jdbc"> |
| <p><span class="bodyBlack"> |
| Then you simply add a <resource-link> element to your <ejb-deployment> element like this |
| </span></p> |
| <table width="420" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">openejb-jar.xml</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre> |
| <?xml version="1.0"?> |
| <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"> |
| |
| <ejb-deployment ejb-name="Hello" |
| deployment-id="Hello" |
| container-id="Default Stateless Container" > |
| |
| <resource-link res-ref-name="jdbc/basic/entityDatabase" |
| res-id="Default JDBC Database"/> |
| |
| </ejb-deployment> |
| |
| </openejb-jar></pre></span></td></tr></table> |
| <p><span class="bodyBlack"> |
| The <b>res-ref-name</b> attribute refers to the <res-ref-name> element of the bean's <resource-ref> declaration in the ejb-jar.xml. |
| The <b>res-id</b> attribute refers to the id of the <Connector> declared in your openejb.conf that will handle the connections and provide access to the desired resource. |
| </span></p> |
| </answer></td></tr><tr><td><a name="resource-link"><h2>How many resource-link elements will I need?</h2></a><answer id="resource-link"> |
| <p><span class="bodyBlack"> |
| You will need one <resource-link> element for every <resource-ref> element in your ejb-jar.xml. So if you had an ejb-jar.xml like the following |
| </span></p> |
| <table width="420" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">ejb-jar.xml</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre> |
| <?xml version="1.0"?> |
| <ejb-jar> |
| <enterprise-beans> |
| <session> |
| <ejb-name>MyExampleBean</ejb-name> |
| <home>com.widget.ExampleHome</home> |
| <remote>com.widget.ExampleObject</remote> |
| <ejb-class>com.widget.ExampleBean</ejb-class> |
| <session-type>Stateless</session-type> |
| <transaction-type>Container</transaction-type> |
| |
| <resource-ref> |
| <description> |
| This is a reference to a JDBC database. |
| </description> |
| <res-ref-name>jdbc/myFirstDatabase</res-ref-name> |
| <res-type>javax.sql.DataSource</res-type> |
| <res-auth>Container</res-auth> |
| </resource-ref> |
| |
| <resource-ref> |
| <description> |
| This is another reference to a JDBC database. |
| </description> |
| <res-ref-name>jdbc/anotherDatabase</res-ref-name> |
| <res-type>javax.sql.DataSource</res-type> |
| <res-auth>Container</res-auth> |
| </resource-ref> |
| |
| </session> |
| </enterprise-beans> |
| </ejb-jar></pre></span></td></tr></table> |
| <p><span class="bodyBlack"> |
| Then you would need two <resource-link> elements for that bean in your openejb-jar.xml file as such. |
| </span></p> |
| <table width="420" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">openejb-jar.xml</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre> |
| <?xml version="1.0"?> |
| <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"> |
| |
| <ejb-deployment ejb-name="MyExampleBean" |
| deployment-id="MyExampleBean" |
| container-id="Default Stateless Container" > |
| |
| <resource-link res-ref-name="jdbc/myFirstDatabase" |
| res-id="My Oracle JDBC Database"/> |
| |
| <resource-link res-ref-name="jdbc/anotherDatabase" |
| res-id="My PostgreSQL JDBC Database"/> |
| |
| </ejb-deployment> |
| |
| </openejb-jar></pre></span></td></tr></table> |
| <p><span class="bodyBlack"> |
| This would require two <Connector> declarations in your openejb.conf, one |
| with the <b>id</b> attribute set to <i>"My Oracle JDBC Database"</i>, and another |
| with it's <b>id</b> attribute set to <i>"My PostgreSQL JDBC Database"</i> |
| </span></p> |
| </answer></td></tr></table></td><td align="left" valign="top" height="5" width="240"> |
| |
| </td></tr><tr height="5"><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td valign="top" bgcolor="#7270c2" height="5" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" height="5" width="7"> </td><td align="left" valign="top" height="5" width="40"> </td><td align="left" valign="top" height="5" width="240"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td align="left" valign="top" bgcolor="#7270c2" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" width="7"> </td><td align="left" valign="top" width="40"> </td><td align="left" valign="top" width="240"> </td></tr><tr height="5"><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="20"><img border="0" height="125" width="20" src="images/stripes1.gif"></td><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="95"><img border="0" height="125" width="105" src="images/stripe105.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="100%" rowspan="2" width="7"> </td><td align="left" valign="top" height="100%" width="40"> </td><td align="left" valign="top" height="100%" width="240"> </td></tr><tr height="5"><td align="left" valign="top" height="25" width="40"> </td><td align="left" valign="bottom" height="25" width="440"><br><br><img height="3" width="440" border="0" src="images/line_light.gif"><br><p></p><span class="bodyGrey"><small><notice> |
| OpenEJB is a trademark of the OpenEJB Group. |
| Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered |
| trademarks of Sun Microsystems, Inc. in the United States and in other |
| countries. XML, XML Schema, XSLT and related standards are trademarks or registered |
| trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web |
| Consortium. All other product names mentioned herein are trademarks of their respective |
| owners. |
| </notice><br> <br></small></span><p></p> |
| |
| </td><td align="left" valign="top" height="25" width="240"> </td></tr></table></body></html> |