10个最好的开源 Java 和 JavaEE 应用服务器

jopen 10年前

Glassfish

GlassFish is an open-source application server project  originally started by Sun Microsystems for the Java EE platform and now part of the Oracle Corporation. It is available under a dual-license: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception. Oracle no longer provides commercial support for GlassFish Server but several organisations have filled that space, most notably Payara who are co-sponsors for NetBeans Day UK.

GlassFish is often considered as the reference implementation of Java EE and so supports Enterprise JavaBeans (a managed, server-side component architecture for modular construction of enterprise applications), JPA (Java Persistence API ), JavaServer Faces, JMS (Java Message Service), RMI (Java Remote Method Invocation), JavaServer Pages, servlets and more. Glassfish allows you to to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. Optional components can also be installed for additional services.

It is built upon a modular kernel powered by OSGi, and runs straight on top of the Apache Felix implementation. It is also capable of running with Equinox OSGi or Knopflerfish OSGi runtimes. HK2 abstracts the OSGi module system to provide components, which can also be viewed as services and injected into the run time and uses a derivative of Apache Tomcat as the servlet container for serving Web content, with an added component called Grizzly which uses Java New I/O (NIO) for scalability and speed.

JBoss Enterprise Application Platform

The JBoss Enterprise Application Platform which is also known as JBoss EAP is a open-source (available under the GNU Lesser General Public License) Java EE-based application server runtime platform used for building, deploying, and hosting highly transactional Java applications and services. It is also available as a subscription-based server. The JBoss Enterprise Application Platform is part of a wider portfolio of software known as the JBoss Enterprise Middleware portfolio.

JBoss works cross-platform and is usable on any operating system that supports Java. Its key features includes support for the Java EE and Web Services standards, Enterprise Java Beans (EJB),Java persistence using Hibernate, Object request broker (ORB) using JacORB for interoperability with CORBA objects,the JBoss Seam framework, including Java annotations, JavaServer Faces (JSF), including RichFaces, Web application services, including Apache Tomcat for JavaServer Pages (JSP) and Java Servlets

JBoss included Security services, including Java Authentication and Authorization Service (JAAS) and pluggable authentication modules (PAM) and additional Web Services and interoperability, including JAX-RPC, JAX-WS, many WS-* standards, and MTOM/XOP

There is also additional Integration and messaging services, management and service oriented architecture and Java management extensions and additional monitoring features are available.

Wildfly

WildFly, was better known as JBoss AS is an application server created by JBoss, but now under continuous development by Red Hat. WildFly is written in Java, and implements the Java Platform, Enterprise Edition (Java EE) specification separately/standalone from the JBoss Enterprise Application Platform. Being Java based means it can run multiple platforms.

WildFly is free and open-source software, and available under the GNU Lesser General Public License (LGPL), version 2.1. Wild Fly is currently in 8.2.0 Final and 9.0.0Beta2 Release.

Some of the functionality and features included in WildFly is Clustering, Deployment API, Distributed caching (using Infinispan, a standalone project) ,Distributed deployment, Enterprise JavaBeans versions 3 and 2.1, Failover (including Web and EJB sessions), persistence programming, Java Authentication and Authorization Service (JAAS), Java EE Connector Architecture (JCA) integration, Java Management Extensions, Java Message Service (JMS) integration, Java Naming and Directory Interface (JNDI), Java Transaction API (JTA), Java Authorization Contract for Containers,  (JACC) integration JavaMail, Java Server Faces 1.2 (Mojarra)Java Server Pages (JSP) / Java Servlet 2.1/2.5

Wildfly also supports web services like JAX-WSJDBCLoad balancing, and includes a Management API, a OSGi frameworkRMI-IIOP and can be executed in two server modes: a traditional, single JVM, standalone mode, and a multi-JVM option, Domain mode, which synchronizes configuration across any number of processes and hosts.

Apache Tomcat

Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies and was developed in an open and participatory environment and released under the Apache License version 2 and developed by the Apache Software Foundation (ASF). Apache Tomcat implements several Java EE specifications including Java Servlet, JavaServer Pages (JSP), Java EL, and WebSocket, and provides a “pure Java” HTTP web server environment for Java code to run in.

Apache TomEE

Apache TomEE is the Java Enterprise Edition of Apache Tomcat which combines several Java enterprise projects which include the Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPA, Apache MyFaces.

Apache TomEE Web Profile can deliver Servlets, JSP, JSF, JTA, JPA, CDI, Bean Validation and EJB Lite and also delivers JAX-RS (RESTfull Services) plus EJB Full, Java EE Connector Architecture, JMS (Java Message Service) and JAX-WS (Web Services) and includes Mojarra and EclipseLink support.

Apache Geronimo

Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license. Apache Geronimo is compatible with the Java Enterprise Edition (Java EE) 6 specification supports various technologies such as JMS, Enterprise JavaBeans, Connectors, servlets, JSP, JSF, Unified Expression Language and JavaMail. Developers can create applications that are both portable and scalable, and that integrate well with legacy technologies. It should be noted that development of Apache Geronimo has now largely been ceased although not completely.

Jetty

Jetty is a Java based HTTP (Web) server and Java Servlet container and is developed as a free and open source project as part of the Eclipse Foundation (originally it was developed as an independent open source project). The web server is relatively popular and is used in products such as Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark, Google App Engine,  Eclipse, 推ter’s Streaming API  and also supports the latest Java Servlet API (with JSP support) as well as AJP, JASPI, JMX, JNDI, OSGi, SPDY and WebSocket.

JOnAS

JOnAS is an open-sourced implementation of the Java EE application server specification, released under the LGPL open-source license and developed and hosted by the ObjectWeb consortium (ObjectWeb is a non-profit European consortium, founded by INRIA, Groupe Bull, and France Télécom).

JOnAS provides a fully compliant EJB container through EasyBeans and is available with an embedded Tomcat or Jetty web container which is 1.6 JVM supported, and can run on numerous operating systems including Linux, Windows, AIX, and many Posix platforms.

Version 5 of JOnAS is fully based on the OSGi framework; using either Apache Felix, Eclipse Equinox or Knopflerfish meaning JOnAS components are packaged as bundles,and contains tools for creating, deploying and monitoring JOnAS clusters; it also includes self-management features too.

Resin Servlet Container (Open Source)

Resin is a web server and Java application server created by Caucho Technology. Resin is available under a GPL license and a commercial license. The Commercial licensed version Resin Pro is available for enterprise and production environments. Resin supports the Java EE standard as well as a mod_php/PHP like engine known as Quercus. Resin is also one of the oldest application and web servers as it predates Apache Tomcat as it was released in 1999.

Resin Pro includes features such as built-in caching and features such as clustering support, advanced administration, and more but the Resin Open Source version is used without these features so will not be covered here,

In terms of the app server,  it is Java EE Web Profile certified, with support for Java CDI and Transaction support. The Web Server aspect includes support for Static files/JSP/Servlet/JSF, URL rewriting, Proxy caching, Gzip compression, SSL, Virtual Hosts, Comet/Server push, and WebSockets.

Blazix

Blazix is a fully featured Java application server and web server (serving HTML files and images in addition to the standard application server workload.) Currently Blazix provides Servlet 2.3, JSP 1.2, EJB 1.1 and JMS 1.0.2. It also implements HTTP/1.1 and is written entirely in Java, and can be used cross-platform. It can be used as a full web server all by itself, especially in high volume traffic.

Some of the features included are support for no-single-point-of-failure clustering for load balancing and failover, live EJB and Web archive deployments and updates, Secure Socket Layer web services, transaction management, security. Blazix provides all these features in a 2-megabyte download which is good if you’re looking for something small.