blob: b5364082185445a2e8ad71c8a0c430ae8dec9d97 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Apache TomEE</title>
<meta name="description"
content="Apache TomEE is a lightweight, yet powerful, JavaEE Application server with feature rich tooling." />
<meta name="keywords" content="tomee,asf,apache,javaee,jee,shade,embedded,test,junit,applicationcomposer,maven,arquillian" />
<meta name="author" content="Luka Cvetinovic for Codrops" />
<link rel="icon" href="favicon.ico">
<link rel="icon" type="image/png" href="favicon.png">
<meta name="msapplication-TileColor" content="#80287a">
<meta name="theme-color" content="#80287a">
<link rel="stylesheet" type="text/css" href="css/normalize.css">
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css/owl.css">
<link rel="stylesheet" type="text/css" href="css/animate.css">
<link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="fonts/eleganticons/et-icons.css">
<link rel="stylesheet" type="text/css" href="css/jqtree.css">
<link rel="stylesheet" type="text/css" href="css/idea.css">
<link rel="stylesheet" type="text/css" href="css/cardio.css">
<script type="text/javascript">
<!-- Matomo -->
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function () {
var u = "//matomo.privacy.apache.org/";
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '5']);
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
g.async = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})();
<!-- End Matomo Code -->
</script>
</head>
<body>
<div class="preloader">
<img src="img/loader.gif" alt="Preloader image">
</div>
<nav class="navbar">
<div class="container">
<div class="row"> <div class="col-md-12">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/" title="Apache TomEE">
<span>
<img
src="img/apache_tomee-logo.svg"
onerror="this.src='img/apache_tomee-logo.jpg'"
height="50"
>
</span>
</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right main-nav">
<li><a href="docs.html">Documentation</a></li>
<li><a href="community/index.html">Community</a></li>
<li><a href="security/security.html">Security</a></li>
<li><a class="btn btn-accent accent-orange no-shadow" href="download.html">Downloads</a></li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div></div>
</div>
<!-- /.container-fluid -->
</nav>
<div id="main-block" class="container main-block">
<div class="row title">
<div class="col-md-12">
<div class='page-header'>
<h1>FAQ</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="sect1">
<h2 id="_general">General</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_what_spec_version_does_openejb_support">What spec version does OpenEJB support?</h3>
<div class="paragraph">
<p>OpenEJB supports the Enterprise JavaBeans 3.0 specification and previous versions 2.1, 2.0 and 1.1.</p>
</div>
</div>
<div class="sect2">
<h3 id="_i_dont_plan_to_use_ejbs_so_why_would_i_embed_openejb_into_tomcat">I don&#8217;t plan to use EJBs, so why would I embed OpenEJB into Tomcat.</h3>
<div class="paragraph">
<p>Adding OpenEJB to Tomcat gives servlets several new Java EE 5 capabilities such as JPA, JAX-WS, JMS, J2EE Connectors, transactions, and more as well as enhancing the injection features of Tomcat 6 to now support injection of JavaEE objects like Topics, Queues, EntityManagers, JMS ConnectionFactories, JavaMail Sessions, as well as simpler data types such as Dates, Classes, URI, URL, List, Map, Set, Properties, and more.
In the case of Tomcat 5.5 which doesn&#8217;t support dependency injection at all, even more is gained.</p>
</div>
</div>
<div class="sect2">
<h3 id="_can_i_run_openejb_with_a_jvm_for_any_vendor">Can I run OpenEJB with a JVM for any vendor?</h3>
<div class="paragraph">
<p>The Sun, Mac, and IBM vms are regularly tested, however any vm should work.</p>
</div>
</div>
<div class="sect2">
<h3 id="_which_version_of_java_is_required_to_run_openejb">Which version of Java is required to run OpenEJB?</h3>
<div class="paragraph">
<p>Java versions 5 or 6, aka Java 1.5 or 1.6.</p>
</div>
</div>
<div class="sect2">
<h3 id="_do_i_need_apache_maven_to_work_with_openejb">Do I need Apache Maven to work with OpenEJB?</h3>
<div class="paragraph">
<p>Definitely not.
Most of the examples include both Maven and Ant build files.
OpenEJB is usable as a plain library, much like an embedded database like Derby, so it is usable in any application regardless if that application is run via Maven, Ant, Intellij, Eclipse, NetBeans, JUnit, TestNG, etc.</p>
</div>
</div>
<div class="sect2">
<h3 id="_can_i_start_and_stop_openejb_from_an_ide_if_yes_which_ide_is">Can I start and stop OpenEJB from an IDE? If yes, which IDE is</h3>
<div class="paragraph">
<p>supported by OpenEJB?</p>
</div>
<div class="paragraph">
<p>The short answer is yes.
The basic approach for all embedding scenarios is to 1) add OpenEJB to your classpath, and 2) construct your InitialContext using org.apache.openejb.client.LocalInitialContextFactory.
The LocalInitialContextFactory will boot OpenEJB in your vm and all ejb applications visible in the classpath will be deployed.
See <a href="embedding.html">embedding openejb</a> for details on how to embed openejb in your application and IDE.
See <a href="application-discovery-via-the-classpath.html">Application discovery via the classpath</a> for various ways to have your applications discovered.</p>
</div>
</div>
<div class="sect2">
<h3 id="_during_embedded_testing_how_can_i_externalize_all_my_datasource">During embedded testing, how can I externalize all my DataSource</h3>
<div class="paragraph">
<p>configuration?</p>
</div>
<div class="paragraph">
<p>Create an openejb.xml file in any directory that gets added to your test classpath.
For maven, something that winds up directly under "target/classes/" or "target/test-classes/" will work just fine.
Then in your test case do this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java"> protected void setUp() throws Exception {
Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
URL config = this.getClass().getClassLoader().getResource("openejb.xml");
properties.setProperty("openejb.configuration", config.toExternalForm());
initialContext = new InitialContext(properties);
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The file itself doesn&#8217;t have to be called "openejb.xml", you could have a few different files like that for different testing scenarios each with a name that describes the basic setup.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_container_managed_persistence">Container-Managed Persistence</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_what_engine_does_openejb_use_for_cmp">What engine does OpenEJB use for CMP?</h3>
<div class="paragraph">
<p>The CMP engine is written as a layer over JPA with OpenJPA doing the persistence work.</p>
</div>
</div>
<div class="sect2">
<h3 id="_what_is_the_format_for_the_cmp_mapping_files">What is the format for the CMP mapping files?</h3>
<div class="paragraph">
<p>The standard JPA mapping file and annotations are also used for CMP mappings.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div style="margin-bottom: 30px;"></div>
<footer>
<div class="container">
<div class="row">
<div class="col-sm-6 text-center-mobile">
<h3 class="white">Be simple. Be certified. Be Tomcat.</h3>
<h5 class="light regular light-white">"A good application in a good server"</h5>
<ul class="social-footer">
<li><a href="https://www.facebook.com/ApacheTomEE/"><i class="fa fa-facebook"></i></a></li>
<li><a href="https://twitter.com/apachetomee"><i class="fa fa-twitter"></i></a></li>
</ul>
<h5 class="light regular light-white">
<a href="privacy-policy.html" class="white">Privacy Policy</a>
</h5>
</div>
<div class="col-sm-6 text-center-mobile">
<div class="row opening-hours">
<div class="col-sm-3 text-center-mobile">
<h5><a href="latest/docs/" class="white">Documentation</a></h5>
<ul class="list-unstyled">
<li><a href="latest/docs/admin/configuration/index.html" class="regular light-white">How to configure</a></li>
<li><a href="latest/docs/admin/file-layout.html" class="regular light-white">Dir. Structure</a></li>
<li><a href="latest/docs/developer/testing/index.html" class="regular light-white">Testing</a></li>
<li><a href="latest/docs/admin/cluster/index.html" class="regular light-white">Clustering</a></li>
</ul>
</div>
<div class="col-sm-3 text-center-mobile">
<h5><a href="latest/examples/" class="white">Examples</a></h5>
<ul class="list-unstyled">
<li><a href="latest/examples/simple-cdi-interceptor.html" class="regular light-white">CDI Interceptor</a></li>
<li><a href="latest/examples/rest-cdi.html" class="regular light-white">REST with CDI</a></li>
<li><a href="latest/examples/ejb-examples.html" class="regular light-white">EJB</a></li>
<li><a href="latest/examples/jsf-managedBean-and-ejb.html" class="regular light-white">JSF</a></li>
</ul>
</div>
<div class="col-sm-3 text-center-mobile">
<h5><a href="community/index.html" class="white">Community</a></h5>
<ul class="list-unstyled">
<li><a href="community/contributors.html" class="regular light-white">Contributors</a></li>
<li><a href="community/social.html" class="regular light-white">Social</a></li>
<li><a href="community/sources.html" class="regular light-white">Sources</a></li>
</ul>
</div>
<div class="col-sm-3 text-center-mobile">
<h5><a href="security/index.html" class="white">Security</a></h5>
<ul class="list-unstyled">
<li><a href="https://apache.org/security" target="_blank" class="regular light-white">Apache Security</a></li>
<li><a href="https://apache.org/security/projects.html" target="_blank" class="regular light-white">Security Projects</a></li>
<li><a href="https://cve.mitre.org" target="_blank" class="regular light-white">CVE</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="row bottom-footer text-center-mobile">
<div class="col-sm-12 light-white">
<p>Copyright &copy; 1999-2022 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>
</div>
</div>
</div>
</footer>
<!-- Holder for mobile navigation -->
<div class="mobile-nav">
<ul>
<li><a hef="latest/docs/admin/index.html">Administrators</a>
<li><a hef="latest/docs/developer/index.html">Developers</a>
<li><a hef="latest/docs/advanced/index.html">Advanced</a>
<li><a hef="community/index.html">Community</a>
</ul>
<a href="#" class="close-link"><i class="arrow_up"></i></a>
</div>
<!-- Scripts -->
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/wow.min.js"></script>
<script src="js/typewriter.js"></script>
<script src="js/jquery.onepagenav.js"></script>
<script src="js/tree.jquery.js"></script>
<script src="js/highlight.pack.js"></script>
<script src="js/main.js"></script>
</body>
</html>