Winstone Servlet Container
Encyclopedia
Winstone is a LGPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

-licensed servlet container that was written out of a desire to provide Java Servlet
Java Servlet
A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...

 functionality with a minimum of unnecessary features. It is not intended to be a completely fully functional Java EE
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...

-style servlet container implementation. Winstone does not support APIs unrelated to Java Servlets, such as JavaMail
Javamail
JavaMail is a Java API used to receive and send email via SMTP, POP3 and IMAP. JavaMail is built into the Java EE platform, but also provides an optional package for use in Java SE.On March 2, 2009, JavaMail 1.4.2 was released....

, Enterprise JavaBean
Enterprise JavaBean
Enterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...

s, etc. Other Servlet container implementations, such as Tomcat, Jetty
Jetty (web server)
Jetty is a pure Java-based HTTP client/server, WebSocket client/server and servlet container developed as a free and open source project as part of the Eclipse Foundation...

, Resin
Resin Server
Resin is a software product, a web server and Java application server from Caucho Technology. Resin is provided in two versions, Resin Professional and Resin Open Source ....

, JRun, and Weblogic can provide the missing functionality.

The original goals in writing Winstone were:
  • Supply fast, reliable servlet container functionality for a single web app
    Web application
    A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...

     per server (this restriction is lifted as of v0.7)
  • Keep the size of the core distribution jar as low as possible (currently 155KB)
  • Keep configuration files to an absolute minimum, using command line options to optionally override sensible compiled in defaults.
  • Eventually compile with GCJ to make a 3-4 MB Windows executable for local development/deployment of servlets. This has not happened yet, because of some GCJ class loading problems.
  • Optionally support JSP compilation using Apache
    Apache Software Foundation
    The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...

    's Jasper.


(all text above used with permission)

Advantages

  • Simple fast deployment - a single jar file is often all that's needed, which can be started from the command line with something as simple as "java -jar winstone.jar "
  • A focus on decomposability. That is, it has been designed in a way that if you don't need a certain feature of the servlet specification (e.g. authentication, cluster support, servlet reloading or JSPs), it is possible to remove the package corresponding to that feature from the winstone jar file, and the feature will be disabled. This can help in embedded environments, where size is at a premium.
  • Size and speed: winstone has a lot less code than other containers, so it starts faster and doesn't have any problems running on older hardware. It also supports J2SE v1.2 JVMs if you supply an XML parser.
  • From v0.7, winstone allows the user to define their own web application classloader class. This is extremely useful for Aspect Oriented Programming, as it allows runtime modifications to web application code without precompilation or a special JVM.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK