| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| |
| <meta charset="UTF-8"> |
| <title>Deployments</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>Deployments |
| |
| <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="Deployments-The'Deployments'elementinopenejb.xml"></a></p> |
| |
| <h1>The 'Deployments' element in openejb.xml</h1> |
| |
| <p><a name="Deployments-Asinglejar"></a></p> |
| |
| <h2>A single jar</h2> |
| |
| <p>To include a single jar by name, just declare a 'Deployments' element with |
| a 'jar' attribute pointing to the jar file on the file system.</p> |
| |
| <pre><code><openejb> |
| ... |
| <Deployments jar="c:\my\app\superEjbs.jar" /> |
| <Deployments jar="c:\someplace\purchasing.jar" /> |
| <Deployments jar="timeTrack.jar" /> |
| </openejb> |
| </code></pre> |
| |
| <p>The last element in the example uses a relative path to point to the ejb |
| jar. This path will be resolved relative to the openejb.base property. |
| So, for example, of the value of openejb.base was 'c:\timeapp\' then |
| OpenEJB would look for the jar 'c:\timeapp\timeTrack.jar'. See the [OPENEJB:Configuration] |
| guide for more details.</p> |
| |
| <h2>A directory of jars</h2> |
| |
| <p>To point to a directory that contains several jar files that OpenEJB should |
| load, simply declare a 'Deployments' element with a 'dir' attribute |
| pointing to the directory containing the jar files.</p> |
| |
| <pre><code><openejb> |
| ... |
| |
| <Deployments dir="c:\my\app\beans\" /> |
| <Deployments dir="c:\crimestopper\lib" /> |
| <Deployments dir="ejbs" /> |
| <Deployments dir="beans" /> |
| </openejb> |
| </code></pre> |
| |
| <p>The directories listed will be searched for jars containing |
| 'META-INF/ejb-jar.xml' files and will be added to the list of jars to load |
| if they do. Better said, it's completely safe to point to a directory |
| containing a mix of ejbs and regular jar files. OpenEJB will simply skip |
| over jars that do contain the required 'META-INF/ejb-jar.xml' file.</p> |
| |
| <p>The last Deployments element declares a 'beans' directory relative to |
| openejb.base for holding ejb jars. This declaration is simply convention |
| and not required.</p> |
| |
| <p><a name="Deployments-Anunpackedjar"></a></p> |
| |
| <h2>An unpacked jar</h2> |
| |
| <p>As of 1.0 beta1, OpenEJB supports unpacked ejb jars. Simply meaning that |
| you don't need to pack your ejb's into a jar file in order to use them in |
| OpenEJB. You still need to follow the ejb jar layout and include an |
| "META-INF/ejb-jar.xml" in the directory that contains your ejbs.</p> |
| |
| <p>For example, if you have a directory structure like this:</p> |
| |
| <pre><code>> C:\myapp\ |
| > C:\myapp\acmeEjbs\ |
| > C:\myapp\acmeEjbs\META-INF\ejb-jar.xml |
| > C:\myapp\acmeEjbs\org\acme\Foo.class |
| > C:\myapp\acmeEjbs\org\acme\FooBean.class |
| > C:\myapp\acmeEjbs\org\acme\FooHome.class |
| > C:\myapp\acmeEjbs\org\acme\Bar.class |
| > C:\myapp\acmeEjbs\org\acme\BarBean.class |
| > C:\myapp\acmeEjbs\org\acme\BarHome.class |
| </code></pre> |
| |
| <p>Then you would delcare a 'Deployments' element with the 'dir' attribute set |
| to 'C:\myapp\acmeEjbs' as shown below.</p> |
| |
| <pre><code><openejb> |
| ... |
| |
| <Deployments dir="c:\myapp\acmeEjbs" /> |
| </openejb> |
| </code></pre> |
| |
| <p>Note that this syntax is the same as the directory syntax above. If |
| OpenEJB finds a META-INF directory with an 'ejb-jar.xml' fine inside, then |
| OpenEJB will treat the directory as an unpacked ejb jar. Otherwise OpenEJB |
| will look for ejb jar files to load as detailed in the above section.</p> |
| |
| <h1>Log file</h1> |
| |
| <p>When trying to figure out if your ejbs were loaded, the openejb.log file is |
| an incredible asset.</p> |
| |
| <p>If your ejbs were loaded successfully you should see entries like the |
| following (1.x and higher only):</p> |
| |
| <pre><code>INFO : Loaded EJBs from |
| /usr/local/openejb-1.0-beta1/beans/openejb-itests-beans.jar |
| INFO : Loaded EJBs from |
| /usr/local/openejb-1.0-beta1/beans/openejb-webadmin-clienttools.jar |
| </code></pre> |
| |
| <p>If your ejbs failed to load, you will see an entry similar to the |
| following.</p> |
| |
| <pre><code>WARN : Jar not loaded. /usr/local/openejb-1.0-beta1/beans/helloworld.jar. |
| Jar failed validation. Use the validation tool for more details |
| </code></pre> |
| |
| <p>Additionally, all the successfully loaded ejbs are individually listed in |
| the log file at startup. The Deployment ID listed is the JNDI name used to |
| lookup the ejb from a client of the Local or Remote Servers. The beans |
| listed below are from our test suite.</p> |
| |
| <pre><code>DEBUG: Deployments : 19 |
| DEBUG: Type Deployment ID |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/RMI-over-IIOP/EJBHome |
| DEBUG: STATEFUL client/tests/stateful/EncBean |
| DEBUG: STATELESS client/tests/stateless/BeanManagedBasicStatelessHome |
| DEBUG: STATEFUL client/tests/stateful/BasicStatefulHome |
| DEBUG: STATELESS client/tests/stateless/EncBean |
| DEBUG: STATEFUL client/tests/stateful/BeanManagedTransactionTests/EJBHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/RMI-over-IIOP/EJBHome |
| DEBUG: STATEFUL client/tests/stateful/RMI-over-IIOP/EJBHome |
| DEBUG: STATELESS client/tests/stateless/BeanManagedTransactionTests/EJBHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/allowed_operations/EntityHome |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/EncBean |
| DEBUG: STATEFUL client/tests/stateful/BeanManagedBasicStatefulHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/BasicBmpHome |
| DEBUG: STATELESS client/tests/stateless/BasicStatelessHome |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/BasicCmpHome |
| DEBUG: STATELESS client/tools/DatabaseHome |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/allowed_operations/EntityHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/EncBean |
| DEBUG: STATELESS client/tests/stateless/RMI-over-IIOP/EJBHome |
| </code></pre> |
| |
| |
| |
| |
| <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 © 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> |