Feedback Welcome! We use your feedback to focus efforts, develop new features, and to make TomEE better for everyone. Help us grow!

Web Profile

Apache TomEE Web Profile delivers Servlets, JSP, JSF, JTA, JPA, CDI, Bean Validation and EJB Lite

Comparison »


Apache TomEE JAX-RS delivers the Web Profile plus JAX-RS

Comparison »


Apache TomEE Plus delivers all that is in the Web Profile and JAX-RS, plus EJB Full, Java EE Connector Architecture, JMS and JAX-WS.

Comparison »



An "EJB" Server that can be run as a separate, standalone, server process. Contains EJB Full, CDI, JPA, JMS, JAX-WS, JAX-RS

Comparison »

Drop-in WARs

A version of Apache OpenEJB that can be dropped into any Tomcat 7.x install effectively creating your own Apache TomEE Web Profile or Apache TomEE Plus.



Should you want to build any of the above binaries, this source bundle is the right one covers them all.


Currently, we have over 80 examples of various aspects of Java EE 6 ranging from EJB, CDI, JAX-RS and more. If you're learning Java EE, this is your secret weapon.


We are proud to announce Apache TomEE 1.5.2 has been released!

It's a maintenance release and is not intended to contain any new feature as we are heavily focusing the 1.6.0 release.

See the release notes for a full list of all the changes. A very big thank you to all the users who have feedback!



New Features

  • TOMEE-670 easier way to skip EE part of an app (system property)
  • TOMEE-742 ability to use propertyplaceholder in beans.xml (${systemPropKey})
  • TOMEE-676 using the http session to store session scoped beans
  • TOMEE-739 ability to provide a resource comparator for cxf rest endpoints
  • TOMEE-738 hooks to deploy rar as jar in WEB-INF/lib
  • TOMEE-737 ability to configure OWB properties through app properties
  • TOMEE-728 static-resources-list for jaxrs endpoint when deploying from application
  • TOMEE-724 simpleLog for tomee maven plugin too (we already have it in arquillian tomee remote)
  • TOMEE-694 read openejb.jaxrs.application in app properties
  • TOMEE-660 basic tomee.bat file
  • OPENEJB-1984 no session management in embedded http layer
  • OPENEJB-1985 basic managedconnection validation for JCA implementation
  • OPENEJB-1982 no webcontext created when using openejb arquillian adapter + no webmodule created
  • OPENEJB-1983 embedded http layer doesn't handle HEAD
  • OPENEJB-1987 ability to deploy at arquillian container startup a ShrinkWrap Archive
  • OPENEJB-1980 request with application/x-www-form-urlencoded content type have no servletinputstream in openejb-http
  • OPENEJB-1981 Add ApplicationComposer inspired class to run TestNG tests
  • OWB-789 owb-1.1.x - openwebbeans-arquillian container


  • TOMEE-678 Check that if @Inject points are used, CDI is enabled
  • TOMEE-679 when specifying jaxrs providers through application default providers are still added
  • TOMEE-733 rework TomcatWebAppBuilder.realWarPath to be closer to tomcat
  • TOMEE-681 ensure ssl connector is activated when https port is specified in tomee mvn plugin config
  • TOMEE-730 cmr field type can sometimes be guessed when missing for relationships
  • TOMEE-680 if a provider is added as a singleton through jaxrs application singletons it is not ignored when trying to deploy singletons
  • TOMEE-689 ear bean resolution doesn't use webapp context first
  • TOMEE-686 JAX-RS @Context injection for EJB interceptors
  • TOMEE-687 Refer to internal EJB BeanContext via WeakReference in JAX-RS layer
  • TOMEE-232 optimize JS imports
  • TOMEE-726 try to force eager init of managed connection (of ManagedConnectionfactory) pool if attribute eagerInit is set to true
  • TOMEE-723 since properties are often superproperties in tomee propertyplaceholder can lead to NPE
  • TOMEE-698 allow to configure OWB failoverservice
  • TOMEE-650 context.xml info lost when using eclipse
  • TOMEE-669 take into account J2EExxx vars of tomcat
  • TOMEE-661 no need to deploy openejb app by default with tomee maven plugin
  • OPENEJB-1990 ability to force the jul config reload
  • OWB-715 Remove EL22 implementation from Core to Own Project


  • TOMEE-672 ejb cdi scope are not managed correctly and can lead to infinite loop
  • TOMEE-673 ejb used as cdi beans are not passivationcapable
  • TOMEE-743 TomcatSecurityService created RunAsRole not return true when call TomcatSecurityService.isCallerInRole
  • TOMEE-677 interceptor bindings ignored for EJBs
  • TOMEE-674 cdi + ear -> extensions are not loaded using the webapp classloader
  • TOMEE-773 Regression vs 1.5.1 for REST Services, NPR in String.compareTo from$LogOperationEndpointInfo.compareTo
  • TOMEE-646 Commons-logging issue
  • TOMEE-645 listener (session/request/...) and cdi beans lifecycle can be wrong
  • TOMEE-735 logic to choose to deploy or not ejbs depending they are in ear lib part of webapps is totally wrong
  • TOMEE-647 context.xml context resources doesn't have the Reference as first parameter
  • TOMEE-731 CDI beans replication does not work
  • TOMEE-643 tomee embedded doesn't unbind port - tomcat needs to be destroyed
  • TOMEE-732 tomee doesn't use standardcontext.getNamingContextName() as name for namingcontextlistener so the key is the context name (2 ROOT webapps is not possible)
  • TOMEE-720 ManagedConnection ignores DataSource
  • TOMEE-690 deploy rest webapps using Application instead of a servlet by endpoint
  • TOMEE-691 (JCA) connection manager destroy method is never called
  • TOMEE-652 service.bat install fails on 64-bit Windows with TomEE+ 1.5.1
  • TOMEE-658 EJB and other components (servlet...) doesn't share the same jndi context (global)
  • TOMEE-725 jaxb-impl shouldn't be in endorsed but at classpath or lib of tomee
  • TOMEE-722 in ear cdi context of webmodule should be deployed only when deploying the webapp (not before) otherwise a bunch of error can occur
  • TOMEE-692 JSPs logged on severe
  • TOMEE-696 When rest application is defined through a servlet in web.xml and deployed through TomEE the servlet should be ignored
  • TOMEE-697 enforce a user and password (empty is not present) when using tomcat-jdbc pool
  • TOMEE-664 persistence.xml in webapps ignored when webapps belongs to an ear
  • TOMEE-663 EAR/WAR Deployment fails on win platforms
  • TOMEE-666 Persistence Unit Resolver doesn't take care of webapp/lib scope in ear
  • TOMEE-665 can't deploy ejb in webapp if the webapp is in an ear
  • TOMEE-668 standard context created for webservice in lib part of ear are not skipped from openejb management
  • TOMEE-667 Deploy an ejb module with persistence.xml file cause: attempted duplicate class definition for name: "org/apache/openejb/cdi/CdiPlugin"
  • OPENEJB-1988 session and request scopes not managed at all in http light layer
  • OPENEJB-1986 Deployment of web application with white spaces in its name fails due to unencoded characters
  • OPENEJB-1978 Unable to deploy anything to a fresh install of 4.5.1
  • OWB-760 CLONE - Decorator position not well managed if the decorator is abstract
  • OWB-761 position in DelegateHandler shouldn't be static
  • OWB-785 WebContextsService isn't compatible with actor-frameworks
  • OWB-700 ProcessInjectionTarget.setInjectionTarget() has no effect when trying to post process beans
  • OWB-743 Overloaded EJB Observer methods fail to deploy
  • OWB-790 owb-1.1.x - deployment error when a @Specializes bean is disabled via an Extension
  • OWB-742 @Alternative is ignored when using the Provider interface.
  • OWB-751 OWB annotation litterals implementation uses only instanceof in equals implementation
  • OWB-723 Interceptors doesn't work for beans got from stereotype annotated producer methods
  • OWB-736 NPE while removing dependent beans

Tasks & Sub-Tasks

  • TOMEE-695 manage basic compatibility between JAXRS deployment by endpoint and by application