blob: d10b1db387c08a4aed983c0c58ac25f81d52c7c4 [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">
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="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="/">
<span>
<img src="../../../img/logo-active.png">
</span>
Apache TomEE
</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 href="../../../download-ng.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>Windows Service</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>It is possible to configure TomEE to run as Windows service, and batch
files are provided in the bin folder to accomplish this. The key batch
file is <code>service.bat</code>, and this provides commands to install and
remove the service. Additionally two helper files are provided to
simplify the installation and create a basic service setup.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>service.install.as.admin.bat</p>
</li>
<li>
<p>service.remove.as.admin.bat</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_installation">Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These instructions assume you have already downloaded a TomEE zip file
and extracted it to the desired location on the file system, and that
you have a suitable Java installation on your machine.</p>
</div>
<div class="paragraph">
<p>Start by opening a Command Prompt as an Administrator user.</p>
</div>
<div class="paragraph">
<p>Ensure you have JAVA_HOME set to the JDK you wish to use for the
service. You can check this by running <code>set JAVA_HOME</code>.</p>
</div>
<div class="paragraph">
<p>Run <code>service install</code>. Optionally you can pass a service name, and
credentials for a service user.</p>
</div>
<div class="paragraph">
<p><code>service install [/service-user &lt;user&gt;] [/service-password &lt;password&gt;] [service name]</code></p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code> C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT\bin&gt;service install TomEE-DEV
Installing the service 'TomEE-DEV' ...
Using CATALINA_HOME: "C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT"
Using CATALINA_BASE: "C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT"
Using JAVA_HOME: "C:\Java\jdk-11.0.4+11
Using JRE_HOME: "C:\Java\jdk-11.0.4+11"
Using JVM: "C:\Java\jdk-11.0.4+11"\bin\server\jvm.dll"
Using Service User: ""
Installed, will now configure TomEE
The service 'TomEE-DEV' has been installed.
C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT\bin&gt;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_removal">Removal</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Removal is similar to installation. First, ensure the service is stopped.
In an administrator Command Prompt, run:</p>
</div>
<div class="paragraph">
<p><code>service remove [service name]</code></p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code> C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT\bin&gt;service remove TomEE-DEV
The service 'TomEE-DEV' has been removed
C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT\bin&gt;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_service_accounts">Service Accounts</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Ny default, the service is installed to run at the user <code>NT-Authority\Local Service</code>,
which is a very restricted account. If you wish to use <code>LocalSystem</code>, which
has more privileges, use:</p>
</div>
<div class="paragraph">
<p><code>service install /service-user LocalSystem [service name]</code></p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code>C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT\bin&gt;service install /service-user LocalSystem TomEE-DEV
Installing the service 'TomEE-DEV' ...
Using CATALINA_HOME: "C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT"
Using CATALINA_BASE: "C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT"
Using JAVA_HOME: "C:\Java\jdk-11.0.4+11"
Using JRE_HOME: "C:\Java\jdk-11.0.4+11"
Using JVM: "C:\Java\jdk-11.0.4+11"\bin\server\jvm.dll"
Using Service User: "LocalSystem"
Installed, will now configure TomEE
The service 'TomEE-DEV' has been installed.
C:\Java\apache-tomee-plus-8.0.0-SNAPSHOT\bin&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Alternatively, you may have a specific local or domain user you wish to use
to run the service. You can specify the username and password for
the service user with the <code>/service-user</code> and <code>/service-password</code>
parameters.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_making_changes">Making Changes</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Once the service is installed, it is possible to make changes either
using the Windows Service Control Manager (start, stop, change user)
or by running the TomEE.exe executable in the bin directory which
will allow you change more settings, such as the JVM the service
uses.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
if you use a custom name for your service, rename (or copy) TomEE.exe to
match it - e.g. TomEE-DEV.exe to match the examples above.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_using_a_32_bit_jvm_on_64_bit_windows">Using a 32 bit JVM on 64 bit Windows</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The service script will install either TomEE.x86.exe or TomEE.amd64.exe as the
service. The script uses the <code>PROCESSOR_ARCHITECTURE=AMD64</code> environment
variable to determine which to use. The TomEE executable used needs to
match the architecture of the JVM you wish to use.</p>
</div>
<div class="paragraph">
<p>If you wish to use a 32 bit JVM on 64 bit Windows, run</p>
</div>
<div class="paragraph">
<p><code>set PROCESSOR_ARCHITECTURE=X86</code> prior to installing the service.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_setting_environment_variables_for_the_service">Setting environment variables for the service</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Setting custom environment variables for TomEE to use is a little tricky
as it can&#8217;t be done through the UI, but can be accomplished via the
command line.</p>
</div>
<div class="paragraph">
<p>After the service as been installed, at the Command Prompt, use the
following syntax (use the right TomEE exe for your platform)</p>
</div>
<div class="paragraph">
<p><code>TomEE.amd64.exe //US//TomEE ++Environment "variable=value"</code></p>
</div>
<div class="paragraph">
<p>Replace <code>TomEE</code> after <code>//US//</code> with your service name if you are using
a custom service name.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_further_information">Further information</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The TomEE exe files are from the Apache Commons Daemon project.
Full documentation for commons-daemon can be found here:</p>
</div>
<div class="paragraph">
<p><a href="http://commons.apache.org/proper/commons-daemon/procrun.html" class="bare">http://commons.apache.org/proper/commons-daemon/procrun.html</a></p>
</div>
</div>
</div>
</div>
</div>
</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>
<li><a href="https://plus.google.com/communities/105208241852045684449"><i class="fa fa-google-plus"></i></a></li>
</ul>
</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="http://apache.org/security" target="_blank" class="regular light-white">Apache Security</a></li>
<li><a href="http://apache.org/security/projects.html" target="_blank" class="regular light-white">Security Projects</a></li>
<li><a href="http://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-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>
</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>