Java Server & Java EE Software

Java EE Web Containers

  • Apache Tomcat
    Free, open source project by theApache Software Foundation, a Java application server that implements the Java EE specifications for the web, such as Servlet, JSP, Taglibs and related/needed utilitary technologies.
    History: The Apache Java Project was merged into the Jakarta Project. The old Apache JServ evolved into the Jakarta Tomcat as Servlet and JSP engine, becoming the reference implementation for Java J2EE Web Container. With the fast expansion and growing of Java projects at Apache Foundation, the most consistent projects has been deassociated from Jakarta Project, earning a top-level status (autonomous project). In September 2005, was Jakarta Tomcat turn to became Apache Tomcat and get its own domain
  • Tomcat Tutorial - Installation and Basic Use [In Portuguese]
    By Márcio d'Ávila.
  • Tomcat 5 on Linux Step-By-Step
    Detailed Java and Tomcat tutorial on Linux, by Pascal Chong. Originally maintained at The Cymulacrum, now hosted at Linux StepByStep.
  • Simple
    The goal of Simple is to bring the power of simplicity to the world of server side Java. The primary focus of the project is to provide a truly embeddable Java based HTTP engine capable of handling enormous loads. Simple provides a truly asynchronous service model, request completion is driven using an internal, transparent, monitoring system. This allows Simple to vastly outperform most popular commercial and open source Java Servlet engines/servers in a multi-tier environment, as it requires only a very limited number of threads to handle very high quantities of concurrent clients. Simple has a fully comprehensive API that is as usable for experienced Java developers as it is for beginners. Best of all, Simple is completely free, released under the terms of the GNU Lesser General Public License (LGPL), which ensures its availability for use by open source and proprietary developers alike.
    Simple @ SourceForge.
  • Jetty - Java HTTP Servlet Server
    Jetty is an Open Source HTTP Servlet Server written in 100% Java. Web server/servlet container.
    SourceForge Project: jetty.
  • AsyncWeb
    AsyncWeb is a high-throughput, non blocking Java HTTP engine - designed throughout to support asynchronous request processing. AsyncWeb (built on top of the excellent NIO based Apache Mina network framework) employs non-blocking selector driven IO at the transport level, and is asynchronous thoughout - from the initial parsing of requests, right through to and including the services implemented by users. AsyncWeb is Licensed under the Apache License, Version 2.0.

Web Java Utilities

  • com.oreilly.servlet
    Home of com.oreilly.servlet package. There's no sense in reinventing the wheel -- here are some servlet support classes that you can use. Most famous are the file upload ones MultipartRequest and MultipartParser. Please read the license before use. By Jason Hunter,, O'Reilly Media.
  • Url Rewrite Filter
    Based on the popular and very useful mod_rewrite for apache, UrlRewriteFilter is a Java Web Filter for any J2EE compliant web application server (such as Resin or Tomcat), which allows you to rewrite URLs before they get to your code. It is a very powerful tool just like Apache's mod_rewrite. By Paul Tuckey.

Java Lightweight Application Framework

Inversion of Control (IoC) containers. The basic concept of Inversion of Control is you don't create your objects, you describe how they should be created. You don't directly connect your components and services together in code, you describe which services are needed by which components, and the container is responsible for hooking it all together. The container creates all the objects, wires them together by setting the necessary properties, and determines when methods are invoked. More recently, this concept has been renamed Dependency Injection.

  • Inversion of Control Containers and the Dependency Injection pattern
    Article by Martin Fowler.
  • Spring Framework - About Spring
    SpringSource Community Project. From SpringSource, by Rod Johnson, CEO.
    Projects: Spring Framework, Spring Web Flow (MVC), Spring Web Services, Spring Security (Acegi Security), SpringSource dm Server, Spring Dynamic Modules For OSGi Service Platforms, Spring Batch, Spring Integration, Spring LDAP, Spring IDE, Spring Modules, Spring JavaConfig, Spring Rich Client, Spring .NET, Spring BeanDoc.
  • Google Guince
    Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 5 and above, brought to you by Google.
    Put simply, Guice alleviates the need for factories and the use of new in your Java code. Think of Guice's @Inject as the new new. You will still need to write factories in some cases, but your code will not depend directly on them. Your code will be easier to change, unit test and reuse in other contexts.
  • Pico Container
  • Trails
    Trails is a domain driven development framework for Java, in the spirit of Ruby on Rails or Naked Objects. The trails project aims to make java enterprise application development radically simpler by allowing developers to focus on the domain model and having other portions dynamically generated. We will leverage existing technologies such as Spring, Tapestry, and Hibernate rather than reinventing.
  • Apache Excalibur
    Excalibur is an open source software project of The Apache Software Foundation. Its primary product is a lightweight, embeddable Inversion of Control container named Fortress that is written in java.
  • Apache HiveMind
    HiveMind is an services and configuration microkernel. Its features are also referred to as Inversion of Control (IoC) Container or Lightweight Container. The adoption of HiveMind in an application ensures the use of certain design principles which improve encapsulation, modularization, testability and reusability.
    HiveMind services are POJOs (Plain Old Java Objects) that can be easily accessed and combined. Each service ideally defines a Java interface it implements (this is not mandatory).
    Unlike other SOAs (Service Oriented Architectures, such as a SOAP, or EJBs), HiveMind is explicitly about combining Java code within a single JVM.

Java EE Application Server

Java EE Compliant Servers

Java EE 5 Compatible Implementations:

Open Source and Freeware Implementations

  • JBoss Application Server
    By JBoss - Professional Open Source.
    JBoss is an Open Source, standards-compliant, J2EE Enterprise JavaBeans (EJB) Application Server implemented in 100% Pure Java. The JBoss organization is working to deliver JBoss as the premier Enterprise Java application server for the Java Enterprise Edition platform. JBoss is delivered under the LGPL licence.
    JBoss @ SourceForge.
  • GlassFish
    GlassFish is a development project of a free, open source J2EE application server which implements the newest features in the Java EE 5 platform. It is based on the source code for Sun Java System Application Server PE 9 donated by Sun Microsystems and TopLink persistence code donated by Oracle.
    JAXP Reference Implementation project is part of Project GlassFish. See the complete list of GlassFish Server Modules.
  • Apache Geronimo
    Apache Geronimo is the J2EE server project of the Apache Software Foundation. The aim of the project is to produce a large and healthy community of J2EE developers tasked with the development of an open-source, certified J2EE server that: is licensed under the Apache License; passes Sun's TCK for J2EE 1.4; and reuses the best ASF/BSD licensed code available today, with new ASF code to complete the J2EE stack.
  • JOnAS: Java Open Application Server
    JOnAS is the Open Source implementation by ObjectWeb of the J2EE specification. JOnAS is J2EE 1.4 certified. It is a pure Java implementation of the specification and relies on the JDK. JOnAS is part of the ObjectWeb Open Source initiative, which was launched in collaboration with several partners.
  • OpenEJB
    OpenEJB is an open source EJB 2.0 container system. As a container system, OpenEJB works like a big plug-in for middleware servers like Web servers, CORBA servers, and application servers. By plugging in OpenEJB these servers obtain instant EJB 2.0 compliance for hosting Enterprise JavaBeans.
    Home of Enhydra Application Server. Open Source for E-Bussiness.
    Open Source Enhydra: The world's first open source Java/XML application server. By ObjectWeb Open Source Middleware.

Commercial J2EE Application Servers

Comparisons and Other Listings

JDBC & Database Connection