Over a million developers have joined DZone.

Tomcat On Steroids (with EJB 3) = Apache TomTom

· Java Zone

Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code! Brought to you in partnership with ZeroTurnaround.

Apache TomTom is an opensource, easy to install EJB 3.1 container. It is lacking CDI, so it is not a full Java EE 6 WebProfile server.
The test:

  1. Download size (tomtom-6.0.29.313.zip ): 28 MB
  2. Installation = Unzip
  3. Disc size: 36,9 MB after installation
  4. Startup: same as tomcat: ./startup.sh
  5. Deployment: copy of the LeanestInterceptor.war into tomtom-6.0.29.313/webapps. App is available under: http://localhost:8080/LeanestInterceptor/
  6. Full deployment of LeanestInterceptor took ~6 secs.
  7. Tested was: Servlet with injected and intercepted EJB 3
  8. TomTom is Apache Tomcat 6.0.29 bundled with Apache OpenEJB 3.1.3 (known for the extremely fast start-up times),Apache ActiveMQ 5.3.1, Apache CXF 2.2.10, Apache OpenJPA 1.2.1, and Apache Geronimo Connector & Transaction 2.1

Please keep in mind that the LeanestInterceptor is just a Smoke Test
The overall impression - good. There was no problem deploying the application. openEJB, however, tried to deploy the .DS_Store file as a WAR - but it couldn't :-): /Users/abien/work/servers/tomtom-apache-tomcat-6-1.0.29/webapps/.DS_Store: Unknown module type.
I had to extend the example with a @Local interface - and introduced so some bloat :-). Injection of @LocalBean into a servlet didn't worked. Still amazing: the same EJB sample works on Glassfish V3 and ...Tomcat. Download TomTom!, see also Release Notes.

 

From http://www.adam-bien.com/roller/abien/entry/tomcat_on_steroids_with_ejb

The Java Zone is brought to you in partnership with ZeroTurnaround. Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code!

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}