A
Ajax
Aspect-Oriented
 
B
Bloggers
Build Systems
Business Intelligence
ByteCode
 
C
CMS
Cache Solutions
Charting & Reporting
Chat Servers
Code Analyzers
Code Beautifiers
Code Coverage
Collections
Command Line
Connection Pools
Crawlers
 
D
Databases
 
E
EJB Servers
ERP & CRM
ESB
Eclipse Plugins
Expression Languages
 
F
Financial Soft
Forum Soft
 
G
General Purpose
Geospatial
Groupware
 
H
HTML Parsers
 
I
IDEs
Installers
Inversion of Control
Issue Tracking
 
J
J2EE Frameworks
JDBC
JMS
JMX
JSP Tag Libraries
Job Schedulers
 
L
Localization
Logging Tools
 
M
Mail Clients
 
N
Network Clients
Network Servers
NoSQL Databases
 
O
Obfuscators
 
P
PDF Libraries
Parser Generators
Persistence
Portals
Profilers
Project Management
 
R
RSS & RDF Tools
Rule Engines
 
S
SQL Clients
Scripting Languages
Search Engines
Security
Source Control
Swing
 
T
Template Engines
Testing Tools
Text Processing
 
U
UML & Modeling
 
V
Validation
 
W
Web Frameworks
Web Mail
Web Servers
Web Services
Web Testing
Wiki Engines
Workflow Engines
 
X
XML Parsers
XML UI Toolkits
 

Open Source Web Servers in Java

Jakarta Tomcat

Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process.

Go To Jakarta Tomcat

Jetty

Jetty is a 100% Java HTTP Server and Servlet Container. This means that you do not need to configure and run a separate web server (like Apache) in order to use java, servlets and JSPs to generate dynamic content. Jetty is a fully featured web server for static and dynamic content. Unlike separate server/container solutions, this means that your web server and web application run in the same process, without interconnection overheads and complications. Furthermore, as a pure java component, Jetty can be simply included in your application for demonstration, distribution or deployment. Jetty is available on all Java supported platforms.

Go To Jetty

Simple

Simple is a truly embeddable Java based HTTP engine. It also provides a component based framework for extendability, which is used to facilitate loadable services similar to Java Servlets. Simple has consistently out performed both commercial and open source Java Servlet engines and has a fully comprehensive API that is as usable for experienced Java developers as it is for beginners.

Go To Simple

Jo!

jo! is a pure Java webserver that implements the Servlet API 2.2, JSP 1.1, and HTTP/1.1. It features support for servlet tag, support for SSI, advanced thread management, virtual hosts, memory sensitive file cache, authentication using a role abstraction, automatic compressed transfer of text or HTML files, auto internationalization, auto servlet and JSP reloading, auto reload of WARs, hot deployment of WARs, and an easy-to-use Swing console. jo! can be used as a webcontainer for jboss and jakarta avalon-phoenix.

Go To Jo!

Rimfaxe

The Rimfaxe Web Server (short name RWS) is a powerful Web Server with a servlet engine. Made with simplicity, speed and scalability in mind, RWS has many unique features

Go To Rimfaxe

Jigsaw

Jigsaw is W3C's leading-edge Web server platform, providing a sample HTTP 1.1 implementation and a variety of other features on top of an advanced architecture implemented in Java.

Go To Jigsaw

Reattore

Reattore is a simple single threaded HTTP server written in Java. Unlike most Java server applications, Reattore uses the socket channel features added in Java 1.4 to serve all requests from one thread, instead of spawning each request off to a new thread. In theory this provides better performance and allows the system to degrade well under high load.

Go To Reattore

Brazil

Brazil is a distributed content Web application server. The framework enables stand-alone systems to work together within the Web space, and a strong authentication architecture allows extranets to access intranets in an open environment without compromising security.

Go To Brazil

Caucho Resin

Resin's high-performance application server features load balancing for increased reliability. Resin encourages separation of content from style with its fast XML and XSL support.

Go To Caucho Resin

Pygmy

Pygmy is a tiny webserver ment for embedding into applications. The core of the server around 40KB. It provides a flexible way to plug-in features, similiar to apache modules or servlets, but it's a much more lightweight API. However, pygmy isn't a replacement for servlet technology. Servlet containers can be integrated into pygmy, and replace other heavyweight http servers. Pygmy can scale it's functionality down to the bare neccessities. Features can be optionally added and removed to reduce pygmy's already small binary size. Pygmy tries to err on the side of simplicity, but allow for enough flexiblity so that it can be tightly integrated with applications.

Go To Pygmy

Fizmez Web Server

It is a very simple webserver, written in Java and completely portable to any Java environment which supports sockets.

Go To Fizmez Web Server

Xerver

Xerver is an advanced free GNU GPL Web and FTP server.

Go To Xerver

JicarillaHTTP

A componentized, scriptable, event-based webserver, based on the JDK 1.4 New I/O (nio) package and on JicarillaFramework.

Go To JicarillaHTTP

Miniature Java Web Server

The Miniature Java Web Server includes most of functionality of real Web Servers including running servlets. The server is pretty small as in Java code as in result byte code. General purpose of the Web server is running and debugging servlets. However, if you host not so high loaded web site, you can use the server as a regular web server with some benefits against big brothers.

Go To Miniature Java Web Server

Tornado

Tornado HTTP Server is a multi-threaded web server written in Java. It aims to be secure, efficient, and portable, and provide a full implementation of HTTP 1.1.

Go To Tornado

NanoHTTPD

A free, simple, tiny (1 java file!), nicely embeddable HTTP server in Java.

Go To NanoHTTPD

AsyncWeb

AsyncWeb is a high-throughput, non blocking Java HTTP engine - designed throughout to support asynchronous request processing. AsyncWeb employs non-blocking selector driven IO at the transport level, and is asynchronous throughout - from the initial parsing of requests, right through to and including the services implemented by users. AsyncWeb breaks away from the blocking request / response architecture found in todays popular HTTP engines. This allows it to be highly scalable and capable of supporting very high throughput - even in high processing latency scenarios. A simple API allows new asynchronous services to be created easily - and out-of-the-box Spring integration allows them to be configured simply and with great flexibility. In addition to "endpoint" HTTP services, AsyncWeb also allows configurable "chains" of behavior - enabling "filter" like behavior to be applied to all requests. Pluggable "resolvers" map incoming requests to their target HTTP service - and are given access to the entire incoming request - allowing the routing possibilities to be very flexible.

Go To AsyncWeb

kangaroo-egg webserver

Kangaroo-egg is a new webserver. It followed HTTP1.1 protocol and has DQM script language and container(very like Servlet/JSP). So it can used in medium or small web application. It has the following special functions:

 * Define the dynamic web page's extended name in yourself.
 * Integrated function of compress HTTP content.
 * Output file base on different permission.
 * Easy create static page.

Go To kangaroo-egg webserver

Rupy

Rupy is a tiny Java NIO HTTP server. Features:

 * NIO (Non-Blocking IO)
 * Asynchronous Reply
 * Chunked Transfer
 * Session Timeout
 * Hot-Deployment
 * Filter Chain

Go To Rupy

Winstone

Winstone is a servlet container that was written out of a desire to provide servlet functionality without the bloat that full J2EE compliance introduces. It is not intended to be a completely fully functional J2EE style servlet container (by this I mean supporting extraneous APIs unrelated to Servlets, such as JNDI, JavaMail, EJBs, etc) - this is left to Tomcat, Jetty, Resin, JRun, Weblogic et al. Sometimes you want just a simple servlet container - without all the other junk - that just goes. This is where Winstone is best suited. Winstone supports v2.4 servlet specification, and is available in a lite version (155KB) and a full version (329KB). It supports JSP 2.0 spec when apache jasper is enabled.

Go To Winstone

firecat

firecat is a Server-Side JavaScript Webserver. With firecat you can build complete Web Applications using JavaScript on both the Client-Side(AJAX) and the Server-Side(NSP). It is similar to ASP and JSP, but instead of VBScript and Java, it uses JavaScript as the main scripting language. firecat is written in Java and can run on any Java Virtual Machine, but the main target will be to support Free Java Runtimes such as SableVM, JamVM, Kaffe, GCJ/GIJ and Apache Harmony. Firecat is geared towards Webmasters, Web Designers and Web Developers, who want to leverage their JavaScript skills on the server-side. Building webpages should be simple. Any Internet User should be able to create webpages with server-side functionality, without being forced to learn complicated programming languages.

Go To firecat

BareHTTP

The BareHTTP library implements a stripped down Java HTTP server able to satisfy only HTTP/0.9, 1.0, and 1.1 GET requests and HTTP/1.0 and 1.1 HEAD requests. It is suitable for embedded use in unit tests that require access to resources via HTTP. Also, it is convenient to use as a stripped down HTML documentation server.

Go To BareHTTP

VQEmbWeb

VQEmbWeb is a very minimal embedded web server for Java (5 or greater). The jar is 12K in size and the only dependency is Apache log4J. It supports plain HTTP and HTTPS over SSL. To use it, just use the EmbeddedServer.createInstance() method, passing in the port to open the server on and an instance of HttpRequestHandler to handle the requests. Your HttpRequestHandler has to return a Response object. The URL parameters are handed to you in their unencoded form in the map. The URL without the parameters included is in the url string. There are also methods for:

 * setting a redirect
 * returning a 404 or a 500
 * setting the content type
 * setting binary, rather than text content

Go To VQEmbWeb

HttpdBase4J

HttpdBase4J is an embeddable Java web server framework that supports HTTP, HTTPS, templated content and serving content from inside an archive. The classes are easy to extend as they utilize the Hollywood 'don't call us, we'll call you' principle to allow the user to overide the framework behaviour during all the different phases of the HTTP transaction.

Go To HttpdBase4J

Cheyenne Secure Web Server

Cheyenne Secure Web Server is the WebServer for enterprise systems. Cheyenne Secure Web Server (SWS) v1.0 is a comprehensive solution for enterprise web stack using Apache server and high-end technology. Cheyenne SWS v1.0 combines http firewall, JAVA (J2EE), PHP, PERL and a domain control system with a advanced Apache HTTPD platform.

Go To Cheyenne Secure Web Server

Sambuca

Sambuca is a Java HTTP Server framework that allows developers to embed a HTTP server directly in their applications with custom HTTP Request Handlers, so that their application can directly process incoming HTTP Requests and easily send back HTTP formatted responses to the requesting client. Applications can host standalone HTTP Services such as Web Service without having to deploy and integrate with a full application server such as Tomcat, JBoss, or WebLogic.

Go To Sambuca






Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. This site is independent of Sun Microsystems, Inc.