Apache TomEE is a JavaEE 6 application server.
This RefCard tries to sum up basic things to know.
| TomEE Philosophy | 
|---|
Apache TomEE, pronounced "Tommy", is an all-Apache Java EE 6 Web Profile certified stack where Tomcat is top dog. Apache TomEE is assembled from a vanilla Apache Tomcat zip file. We start with Tomcat, add our jars and zip up the rest. The result is Tomcat with added EE features - TomEE. Its core values are: 
  | 
| TomEE Links | 
|---|
  | 
| TomEE ClassLoading | 
|---|
Classloading configuration (properties): 
  | 
| TomEE Basic Operation | |
|---|---|
Start and wait Ctrl+C  | 
  | 
Start and forget  | 
  | 
Stop  | 
  | 
Deploy manually a webapp  | 
  | 
Redeploy manually a webapp  | 
  | 
| TomEE Distributions | 
|---|
  | 
| TomEE Directory Layout | |
|---|---|
  | 
contains script to manage (start/stop/…) TomEE  | 
  | 
server global configuration  | 
  | 
override JVM API because too old for JavaEE  | 
  | 
server libraries  | 
  | 
logs directory (using default configuration)  | 
  | 
default tmp directory  | 
  | 
default folder which aims to contain webapps  | 
  | 
folder used by Tomcat to store "work" binaries (compiled jsp…)  | 
| Scanning/Loader configuration, conf/catalina.properties | 
|---|
 | 
| TomEE system properties, conf/system.properties | 
|---|
 | 
| Logging configuration, conf/logging.properties | 
|---|
 | 
| Daemons configuration, conf/conf.d/*.properties | 
|---|
OpenEJB and TomEE rely on daemons for extensibility. Typically JAXWS and JAXRS uses this feature to be added to the server. Each daemon can get configuration. It is configurable through: 
 All daemons have a property   | 
| Server configuration, conf/server.xml | 
|---|
 | 
| JAXWS WS Security configuration | 
|---|
It basically relies on openejb-jar.xml (in META-INF or WEB-INF): A complete example can be found within TomEE examples:  
  | 
| Scanning configuration | 
|---|
Scanning is used to find EE classes (EJB, CDI beans…). It is common to not scan utility libraries like commons-lang for instance. TomEE/OpenEJB support two main configurations regarding the scanning: 
 
 | 
| TomEE application configuration, WEB-INF/resources.xml | 
|---|
 | 
| JAXRS configuration | ||
|---|---|---|
It basically relies on openejb-jar.xml (in META-INF or WEB-INF): 
Values are either a class which will be instantiated (through  
Here is the full list of available properties configurable in  
 
  | 
| TomEE main configuration, conf/tomee.xml | 
|---|
 | 
| Activating JAAS | ||
|---|---|---|
 Basic JAAS configuration needs: 
 
 Here is a sample JAAS config file using PropertiesLoginModule: 
This login module needs 2 properties files, one for group and one for users. Here is a  
Here is a  
To integrate JAAS with Tomcat just add/replace the default tomcat realm with: 
 | 
| OpenEJB dependencies | 
|---|
 | 
| TomEE dependencies | 
|---|
 | 
| TomEE Embedded dependencies | 
|---|
 | 
| TomEE maven plugin configuration | ||
|---|---|---|
 
 | 
| TomEE maven plugin information | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Compatibility matrix: 
 Main goals: 
 
 
  | 
| OpenEJB embedded adapter configuration | 
|---|
 | 
| TomEE Arquillian Adapters | 
|---|
TomEE arquillian adapters support the system property  This way you can run your test against several OpenEJB/TomEE adapters in the same build (no need of any maven profile). A complete sample can be found here: http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/multiple-arquillian-adapters/).  | 
| Simple Arquillian test | 
|---|
 | 
| TomEE embedded adapter configuration | 
|---|
 | 
| TomEE remote adapter configuration | 
|---|
 | 
| Multiple TomEE with Arquillian | 
|---|
Then in java just declare "as usual" multiple deployments and match them in your test methods: 
 |