Skip to main content

If you just heard about TomEE and want to know more, then you’ve come to the right place. This post will guide you on how to start using TomEE for your Java EE project. But wait, what exactly is TomEE?

Getting Started with TomEE

TomEE is just Tomcat + Java EE = TomEE (Pretty simple, right?)

What is TomEE?

(the long version)
TomEE is assembled from a vanilla Tomcat zipped file with all the additional libraries required to provide a Java EE environment. These include Apache CXF, ActiveMQ, OpenWebBeans and OpenJPA to name a few. This means that if you already use Tomcat and now need EE features, consider TomEE. It integrates easily with Tomcat and cuts down on extra time and work to integrate additional libraries.

(the explanation wasn’t so long, was it?)

TomEE Installation

TomEE Download

Just download the desired version from TomEE website, unzip it and you are good to go! Notice how small it is. Just around 40 Mbytes unpacked. No need to get a separate disk as you would do for a Websphere or a Weblogic installation.

Note: TomEE 1.x versions targets Java EE 6, TomEE 7.x versions targets Java EE 7 and TomEE 8.x versions targets Java EE 8.

TomEE Directory Layout

The directory layout is similar to Tomcat, but some folders include additional features.

Folder Description
bin Directory where startup, shutdown and other scripts are stored.
conf Directory where configuration files are located. These affect the entire server.
lib Directory where libraries are stored, including third party libraries to transform Tomcat into TomEE. Libraries stored here are shared between all applications.
logs Directory where server and application logs are stored.
webapps Directory used to deploy .WAR files.
apps Optional directory to deploy any EE application (EJB, WAR, EAR)

Run TomEE

If you look into the bin/ directory you are going to find several files, but for now, lets just concentrate on:

  • / startup.bat
  • /
  • / catalina.bat

You can start the server right away just by executing the startup.(sh|bat) script. TomEE is now running in background mode. To confirm that the server booted up properly, check the file catalina.out, sitting in the logs directory.

By executing shutdown.(sh|bat) you can stop the server.

TomEE in Foreground

These commands are mostly used when running production servers. When doing development, we might want to see the server output right away. We can do that using the script catalina.(sh|bat) run. This starts TomEE in foreground mode and output the server logs to the screen from where you started the server.

In this mode, you can easily stop TomEE by hitting CTRL|CMD + C.

Try putting the address http://localhost:8080 in a browser. You should get the Tomcat welcome page. By the way, did you notice how fast the server starts? Just a few seconds, depending on the host machine. For me, it actually starts in less than 1 second!

Note: You can use Java 8 to run TomEE and develop awesome applications using Streams and Lambdas.

Deploy a WAR in TomEE

The easiest way to add and deploy an application to TomEE is to drop the application package into a deployment directory. For that purpose you have available two directories: webapps and apps.

To deploy an Application, just copy the WAR file into the webapps or apps directories. The deploy itself has the same outcome. For simplicity reason and to keep compatibility with Tomcat, we recommend to deploy WAR files in the webapps directory.

It doesn’t matter if TomEE is running or not when you copy the file. If running, TomEE will detect the new file after a second or two, deploy and start the application. If you replace an existing file, TomEE will redeploy the application.

Like with Tomcat, your WAR application myapp.war will be available at http://localhost:8080/myapp.

If you don’t have one, try it out with the well known Java Petstore sample. The Java Petstore was designed to illustrate how Java EE could be used to develop an eCommerce web application. You can download it here.


TomEE is a very lightweight application server. It shouldn’t take you more than 10 minutes (depending on your Internet connection), to download, install and have something running.

By using TomEE, you’re not just saving developing time with a easy to develop and fast environment, but you’re also using a compliant Java EE Web Profile Certified Server thanks to the hard work of TomEE developers.

Roberto Cortez

Roberto Cortez

Roberto Cortez is a passionate Java Developer with more than 10 years of experience; mainly the Finance sector. He is involved within the Open Source Community to help other individuals spread the knowledge about Java EE technologies.

Leave a Reply