<!DOCTYPE html>
<html lang="en">
  <head>

    <meta charset="UTF-8">
      <title>Details on openejb-jar</title>
    <meta name="description" content="Apache TomEE">
    <meta name="author" content="Apache TomEE">
    <meta name="google-translate-customization" content="f36a520c08f4c9-0a04e86a9c075ce9-g265f3196f697cf8f-10">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate, max-age=0">

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <link href="./resources/css/bootstrap.css" rel="stylesheet">
    <link href="./resources/css/prettify.css" rel="stylesheet">
    <!--link href="./resources/css/bootstrap-mods.css" rel="stylesheet"-->
    <link href="./resources/css/main.css" rel="stylesheet">
    <link href="./resources/font-awesome-4.6.3/css/font-awesome.min.css" rel="stylesheet">

    <script type="text/javascript">
        var t = encodeURIComponent(document.title.replace(/^\s+|\s+$/g,""));
        var u = encodeURIComponent(""+document.URL);
    
      function fbshare () {
          window.open(
                  "http://www.facebook.com/sharer/sharer.php?u="+u,
                  'Share on Facebook',
                  'width=640,height=426');
      };
      function gpshare () {
          window.open(
                  "https://plus.google.com/share?url="+u,
                  'Share on Google+',
                  'width=584,height=385');
      };
      function twshare () {
          window.open(
                  "https://twitter.com/intent/tweet?url="+u+"&text="+t,
                  'Share on Twitter',
                  'width=800,height=526');
      };
      function pinshare () {
          window.open("//www.pinterest.com/pin/create/button/?url="+u+"&media=http%3A%2F%2Ftomee.apache.org%2Fresources%2Fimages%2Ffeather-logo.png&description="+t,
                  'Share on Pinterest',
                  'width=800,height=526');
      };
    </script>

    <!-- Le fav and touch icons -->
    <link rel="shortcut icon" href="./favicon.ico">
    <link rel="apple-touch-icon" href="./resources/images/apple-touch-icon.png">
    <link rel="apple-touch-icon" sizes="72x72" href="./resources/images/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="./resources/images/apple-touch-icon-114x114.png">

    <script src="./resources/js/prettify.js" type="text/javascript"></script>
    <script src="./resources/js/jquery-latest.js"></script>
    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
    <script src="./resources/js/common.js"></script>
    <script src="./resources/js/prettyprint.js"></script>
    <!--script src="//assets.pinterest.com/js/pinit.js" type="text/javascript" async></script//-->
    
    <script type="text/javascript">

      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-2717626-1']);
      _gaq.push(['_setDomainName', 'apache.org']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
  </head>

  <body>

    <div class="topbar" data-dropdown="dropdown">
      <div class="fill">
        <div class="container">
          <a class="brand" href="./index.html">Apache TomEE</a>
          <ul class="nav">
              <li class="dropdown">
                  <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                  Apache
                      <b class="caret"></b>
                  </a>
                  <ul class="dropdown-menu">
                     <!-- <li><a href="./misc/whoweare.html">Who we are?</a></li> -->
                     <!-- <li><a href="./misc/heritage.html">Heritage</a></li> -->
                     <li><a href="http://www.apache.org">Apache Home</a></li>
                     <!-- <li><a href="./misc/resources.html">Resources</a></li> -->
                     <li><a href="./misc/contact.html">Contact</a></li>
                     <li><a href="./misc/legal.html">Legal</a></li>
                     <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                     <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                     <li class="divider"/>
                     <li><a href="http://www.apache.org/security">Security</a></li>
                  </ul>
              </li>
              <li><a href="./index.html">Home</a></li>
              <li><a href="./downloads.html">Downloads</a></li>
              <li><a href="./documentation.html">Documentation</a></li>
              <li><a href="./examples-trunk/index.html">Examples</a></li>
              <li><a href="./support.html">Support</a></li>
              <li><a href="./contribute.html">Contribute</a></li>
              <li><a href="./security/index.html">Security</a></li>
          </ul>

            <!-- Google CSE Search Box Begins  -->
            <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
                <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
                <INPUT type="hidden" name="cof" value="FORID:0">
                <INPUT size="18" width="130" style="width:130px" name="q" type="text" placeholder="Search">
            </FORM>
            <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
            <!-- Google CSE Search Box Ends -->
        </div>
      </div>
    </div>

    <div class="container">
    

<div class="page-header">
    <small><a href="./index.html">Home</a></small><br>
    <h1>Details on openejb-jar

        <div style="float: right; position: relative; bottom: -10px; ">
            <a onclick="javascript:gpshare()" class="gp-share sprite" title="Share on Google+">share [gp]</a>
            <a onclick="javascript:fbshare()" class="fb-share sprite" title="Share on Facebook">share [fb]</a>
            <a onclick="javascript:twshare()" class="tw-share sprite" title="Share on Twitter">share [tw]</a>
            <a onclick="javascript:pinshare()" class="pin-share sprite" title="Share on Pinterest">share [pin]</a>
            <a data-toggle="modal" href="#edit" class="edit-page" title="Contribute to this Page">contribute</a>
        </div>
    </h1>
</div>

<p><a name="Detailsonopenejb-jar-Whatisanopenejb-jar.xml?"></a></p>

<h1>What is an openejb-jar.xml?</h1>

<p>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.</p>

<p><a name="Detailsonopenejb-jar-Whenistheopenejb-jar.xmlused?"></a></p>

<h1>When is the openejb-jar.xml used?</h1>

<p>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.</p>

<p><a name="Detailsonopenejb-jar-DoIevenneedthedeploytoolthen?"></a></p>

<h1>Do I even need the deploy tool then?</h1>

<p>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.</p>

<p><a name="Detailsonopenejb-jar-WheredoIputtheopenejb-jar.xmlinmyjar?"></a></p>

<h1>Where do I put the openejb-jar.xml in my jar?</h1>

<p>The openejb-jar.xml file just goes in the META-INF directory of your jar
next to the ejb-jar.xml file.</p>

<p><a name="Detailsonopenejb-jar-Isthefileformateasy?"></a></p>

<h1>Is the file format easy?</h1>

<p>If you can understand the ejb-jar.xml, the openejb-jar.xml should be a
breeze.</p>

<p>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.</p>

<pre><code>&lt;?xml version="1.0"?&gt;
&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;
    &lt;ejb-deployment  ejb-name="Hello"
         deployment-id="Hello"
         container-id="Default Stateless Container"/&gt;
&lt;/openejb-jar&gt;
</code></pre>

<p>The <em>ejb-name</em> attribute is the name you gave the bean in your ejb-jar.xml.
The <em>deployment-id</em> is the name you want to use to lookup the bean in your
client's JNDI namespace. The <em>container-id</em> is the name of the container in
your openejb.conf file that you would like the bean to run in. There MUST
be one <em>ejb-deployment</em> element for each EJB in your jar.</p>

<h1>What if my bean uses a JDBC datasource?</h1>

<p>Then you simply add a <resource-link> element to your <ejb-deployment>
element like this</p>

<pre><code>&lt;?xml version="1.0"?&gt;
&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;

    &lt;ejb-deployment  ejb-name="Hello" 
             deployment-id="Hello" 
             container-id="Default Stateless Container" &gt;

    &lt;resource-link res-ref-name="jdbc/basic/entityDatabase" 
             res-id="Default JDBC Database"/&gt;

    &lt;/ejb-deployment&gt;

&lt;/openejb-jar&gt;
</code></pre>

<p>The <em>res-ref-name</em> attribute refers to the <res-ref-name> element of the
bean's <resource-ref> declaration in the ejb-jar.xml. The <em>res-id</em>
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.</p>

<p><a name="Detailsonopenejb-jar-Howmanyresource-linkelementswillIneed?"></a></p>

<h1>How many resource-link elements will I need?</h1>

<p>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</p>

<pre><code>&lt;?xml version="1.0"?&gt;
&lt;ejb-jar&gt;
  &lt;enterprise-beans&gt;
    &lt;session&gt;
      &lt;ejb-name&gt;MyExampleBean&lt;/ejb-name&gt;
      &lt;home&gt;com.widget.ExampleHome&lt;/home&gt;
      &lt;remote&gt;com.widget.ExampleObject&lt;/remote&gt;
      &lt;ejb-class&gt;com.widget.ExampleBean&lt;/ejb-class&gt;
      &lt;session-type&gt;Stateless&lt;/session-type&gt;
      &lt;transaction-type&gt;Container&lt;/transaction-type&gt;

      &lt;resource-ref&gt;
        &lt;description&gt;
          This is a reference to a JDBC database.
        &lt;/description&gt;
        &lt;res-ref-name&gt;jdbc/myFirstDatabase&lt;/res-ref-name&gt;
        &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;
        &lt;res-auth&gt;Container&lt;/res-auth&gt;
      &lt;/resource-ref&gt;

      &lt;resource-ref&gt;
        &lt;description&gt;
          This is another reference to a JDBC database.
        &lt;/description&gt;
        &lt;res-ref-name&gt;jdbc/anotherDatabase&lt;/res-ref-name&gt;
        &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;
        &lt;res-auth&gt;Container&lt;/res-auth&gt;
      &lt;/resource-ref&gt;

    &lt;/session&gt;
  &lt;/enterprise-beans&gt;
&lt;/ejb-jar&gt;
</code></pre>

<p>Then you would need two <resource-link> elements for that bean in your
openejb-jar.xml file as such.</p>

<pre><code>&lt;?xml version="1.0"?&gt;
&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;

    &lt;ejb-deployment  ejb-name="MyExampleBean" 
             deployment-id="MyExampleBean" 
             container-id="Default Stateless Container" &gt;

    &lt;resource-link res-ref-name="jdbc/myFirstDatabase" 
             res-id="My Oracle JDBC Database"/&gt;

    &lt;resource-link res-ref-name="jdbc/anotherDatabase" 
             res-id="My PostgreSQL JDBC Database"/&gt;

    &lt;/ejb-deployment&gt;

&lt;/openejb-jar&gt;
</code></pre>

<p>This would require two <Connector> declarations in your openejb.conf, one
with the <em>id</em> attribute set to <em>"My Oracle JDBC Database"</em> , and another
with it's <em>id</em> attribute set to <em>"My PostgreSQL JDBC Database"</em> </p>




        <div id="edit" class="modal hide fade in" style="display: none; ">
            <div class="modal-header">
                <a class="close" data-dismiss="modal">x</a>

                <h3>Thank you for contributing to the documentation!</h3>
            </div>
            <div class="modal-body">
                <h4>Any help with the documentation is greatly appreciated.</h4>
                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
                <!--[if gt IE 6]>
                <h4>Internet Explorer Users</h4>
                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
                <![endif]-->

            </div>
            <div class="modal-footer">
                Do you have an Apache ID?
                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
            </div>
        </div>
        <script src="./resources/js/bootstrap-modal.js"></script>

        <footer>
            <p>Copyright &copy; 1999-2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
                Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE project logo are trademarks of The Apache Software Foundation.
                All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
        </footer>

    </div> <!-- /container -->

    <!-- Javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="./resources/js/bootstrap-dropdown.js"></script>

  </body>
</html>
