Jetty (web server)

Last updated
Jetty
Original author(s) Greg Wilkins
Developer(s) Eclipse Foundation
Initial release1995;29 years ago (1995)
Stable release(s)
12.0.x12.0.0 / August 7, 2023;14 months ago (2023-08-07) [1]
11.0.x11.0.15 / April 13, 2023;17 months ago (2023-04-13) [1]
10.0.x10.0.15 / April 13, 2023;17 months ago (2023-04-13) [1]
9.4.x9.4.52 / August 28, 2023;13 months ago (2023-08-28) [1]
Repository Jetty Repository
Written in Java
Operating system Cross-platform (JVM)
Type Web server, Servlet container
License Apache License 2.0, Eclipse Public License v1.0
Website jetty.org

Eclipse Jetty is a Java web server and Java Servlet container. While web servers are usually associated with serving documents to people, Jetty is now often used for machine to machine communications, usually within larger software frameworks. Jetty is developed as a free and open source project as part of the Eclipse Foundation. The web server is used in products such as Apache ActiveMQ, [2] Alfresco, [3] Scalatra, Apache Geronimo, [4] Apache Maven, Apache Spark, Google App Engine, [5] Eclipse, [6] FUSE, [7] iDempiere, [8] Twitter's Streaming API [9] and Zimbra. [10] Jetty is also the server in open source projects such as Lift, Eucalyptus, OpenNMS, Red5, Hadoop and I2P. [11] Jetty supports the latest Java Servlet API (with JSP support) as well as protocols HTTP/2 and WebSocket.

Contents

Overview

Jetty started as an independent open-source project in 1995. In 2009 Jetty moved to Eclipse. [12] [13] Jetty often provides support for Web services in an embedded Java application and it is already a component of the Eclipse IDE. It provides support for a wide variety of specifications and protocols including JASPI, JMX, JNDI, OSGi, WebSocket, HTTP/2, and more. [5]

History

Originally developed by software engineer Greg Wilkins, Jetty was an HTTP server component of Mort Bay Server. It was originally called IssueTracker (its original application) and then MBServler (Mort Bay Servlet server). Neither of these were much liked, so Jetty was finally picked. [14]

Jetty was started in 1995 and was hosted by MortBay, creating version 1.x and 2.x, until 2000. From 2000 to 2005, Jetty was hosted by sourceforge.net where version 3.x, 4.x, and 5.x were produced. In 2005, the entire Jetty project moved to codehaus.org. [15] As of 2009, the core components of Jetty have been moved to Eclipse.org, and Codehaus.org continued to provide integrations, extensions, and packaging of Jetty versions 7.x and 8.x (not 9.x) [16] [17] In 2016, the main repository of Jetty moved to GitHub, [18] where it is still developed under the Eclipse IP Process.

VersionHomeMin Java VersionProtocolsServlet VersionJSP VersionStatus
12.0.xEclipse17 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI, JakartaEE Namespace3.1, 4.0, 5.0, 6.02.3, 3.0, 3.1Stable [19]
11.0.xEclipse11 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI, JakartaEE Namespace5.03.0EOL / Security Only [19]
10.0.xEclipse11 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI 4.02.3EOL / Security Only [19]
9.4.xEclipse1.8 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI 3.12.3EOL / Security Only [19]
9.3.xEclipse1.8 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI 3.12.3Deprecated [19]
9.2.xEclipse1.7 HTTP/1.1 RFC2616, WebSocket RFC6455, SPDY v33.12.3Deprecated [19]
9.1.xEclipse1.7 HTTP/1.1 RFC26163.12.3Deprecated [19]
9.0.xEclipse1.7 HTTP/1.1 RFC26163.1-beta2.3Deprecated [19]
8.xEclipse/Codehaus1.6 HTTP/1.1 RFC2616, WebSocket RFC6455, SPDY v33.02.2Venerable [19]
7.xEclipse/Codehaus1.5 HTTP/1.1 RFC2616, WebSocket RFC6455, SPDY v32.52.1Venerable [19]
6.xCodehaus1.4–1.5 HTTP/1.1 RFC26162.52.0Antique [19]
5.xSourceForge1.2–1.5 HTTP/1.1 RFC26162.42.0Relic [19]
4.xSourceForge1.2, J2ME HTTP/1.1 RFC26162.31.2Ancient [19]
3.xSourceForge1.2 HTTP/1.1 RFC20682.21.1Fossilized [19]
2.xMortbay1.1 HTTP/1.0 RFC19452.11.0Legendary [19]
1.xMortbay1.0 HTTP/1.0 RFC1945--Mythical [19]

See also

Related Research Articles

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

The Jakarta Project created and maintained open source software for the Java platform. It operated as an umbrella project under the auspices of the Apache Software Foundation, and all Jakarta products are released under the Apache License. As of December 21, 2011 the Jakarta project was retired because no subprojects were remaining.

A web container is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access-rights. A web container handles requests to servlets, Jakarta Server Pages (JSP) files, and other types of files that include server-side code. The Web container creates servlet instances, loads and unloads servlets, creates and manages request and response objects, and performs other servlet-management tasks. A web container implements the web component contract of the Jakarta EE architecture. This architecture specifies a runtime environment for additional web components, including security, concurrency, lifecycle management, transaction, deployment, and other services.

<span class="mw-page-title-main">Apache Tomcat</span> Java-based HTTP web server environment

Apache Tomcat is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also run. Thus it is a Java web application server, although not a full JEE application server.

<span class="mw-page-title-main">WebObjects</span> Java web application server and framework originally developed by NeXT Software

WebObjects is a discontinued Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.

<span class="mw-page-title-main">Apache Struts 1</span> Open-source web application framework

Apache Struts 1 is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May 2000. Formerly located under the Apache Jakarta Project and known as Jakarta Struts, it became a top-level Apache project in 2005.

<span class="mw-page-title-main">Apache Geronimo</span> Open-source web application server

Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license.

<span class="mw-page-title-main">Apache Tapestry</span> Open-source web application framework

Apache Tapestry is an open-source component-oriented Java web application framework conceptually similar to JavaServer Faces and Apache Wicket. Tapestry was created by Howard Lewis Ship, and was adopted by the Apache Software Foundation as a top-level project in 2006.

WebSphere Application Server Community Edition (WASCE) was a free-of-charge, certified Java EE 6 application server for building and managing Java applications. Until September 30, 2016, it was IBM's supported distribution of Apache Geronimo that usee Tomcat for servlet container and Axis 2 for web services. Another difference from Apache Geronimo is that WASCE came with Db2 and Informix database drivers, better XML parser libraries and contained the latest patches from unreleased upstream versions. Over 30 WASCE developers were committers in the Apache Geronimo project.

<span class="mw-page-title-main">GlassFish</span> Application server project

GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.

Apache CXF is an open source software project developing a Web services framework. It originated as the combination of Celtix developed by IONA Technologies and XFire developed by a team hosted at the now defunct host CodeHaus in 2006. These two projects were combined at the Apache Software Foundation. The name "CXF" was derived by combining "Celtix" and "XFire".

Java view technologies and frameworks are web-based software libraries that provide the user interface, or "view-layer", of Java web applications. Such application frameworks are used for defining web pages and handling the HTTP requests (clicks) generated by those web pages. As a sub-category of web frameworks, view-layer frameworks often overlap to varying degrees with web frameworks that provide other functionality for Java web applications.

<span class="mw-page-title-main">Spring Roo</span> Open-source software tool

Spring Roo is an open-source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Thymeleaf, Apache Maven and AspectJ. Spring Roo is a member of the Spring portfolio of projects.

Virgo is an open source, OSGi-based, Java application server. Virgo supports the deployment of OSGi bundles and unmodified Java web applications as well as OSGi-influenced Shared Libraries WARs and Shared Services WARs.

Imixs Workflow is an open-source project, providing technologies for building Business Process Management solutions. The project focus on human based workflows used to execute and control workflows in organisations and enterprises. In difference to task-oriented workflow engines, which focus on automated program flow control (tasks), Imixs Workflow is a representative of an event-based workflow engine. Here, the engine controls the status of a process instance within a defined state-diagram. By entering an event, the state of a process instance can be abandoned or changed. In human-centric workflow engines, events usually occur by an interaction of the actor with the system, for example by approving or rejecting a business transaction. They can also be triggered by scheduled events. An example of this is an escalation of an unfinished task.

HtmlUnit is a headless web browser written in Java. It allows high-level manipulation of websites from other Java code, including filling and submitting forms and clicking hyperlinks. It also provides access to the structure and the details within received web pages. HtmlUnit emulates parts of browser behaviour including the lower-level aspects of TCP/IP and HTTP. A sequence such as getPage(url), getLinkWith("Click here"), click allows a user to navigate through hypertext and obtain web pages that include HTML, JavaScript, Ajax and cookies. This headless browser can deal with HTTPS security, basic HTTP authentication, automatic page redirection and other HTTP headers. It allows Java test code to examine returned pages either as text, an XML DOM, or as collections of forms, tables, and links.

<span class="mw-page-title-main">Spring Boot</span> Application framework for Java platform

Spring Boot is an open-source Java framework used for programming standalone, production-grade Spring-based applications with a bundle of libraries that make project startup and management easier. Spring Boot is a convention-over-configuration extension for the Spring Java platform intended to help minimize configuration concerns while creating Spring-based applications. The application can still be adjusted for specific needs, but the initial Spring Boot project provides a preconfigured "opinionated view" of the best configuration to use with the Spring platform and selected third-party libraries.

References

  1. 1 2 3 4 "Releases · eclipse/jetty.project". github.com. Retrieved 2023-08-07.
  2. "ActiveMQ with Ajax and Jetty". Jetty Wike (Codehaus). Archived from the original on 2011-08-30. Retrieved 2011-04-12.
  3. JM.Pascal (April 2010). "Maven + Alfresco : Jetty, Boostrap and Profil". Going to an OpenSource ECM World.... Archived from the original on 2012-01-07. Retrieved 2011-04-12.
  4. "Configuring Virtual Hosts in Geronimo-Jetty". Apache Geronimo Documentation. 6 January 2009. Retrieved 2011-04-12.
  5. 1 2 Wickesser, Craig (5 August 2009). "Google Chose Jetty for App Engine". InfoQ. C4Media Inc. Retrieved 12 Apr 2011.
  6. "jetty://". Eclipse. Retrieved 12 Apr 2011.
  7. "class JettyHttpComponent". FuseSource. Red Hat. Archived from the original on March 15, 2011. Retrieved 12 Apr 2011.
  8. "Platform Upgrade for r3" . Retrieved 8 Apr 2014.
  9. "Twitter Streaming API and Apache Wink". Archived from the original on 15 March 2016. Retrieved 19 May 2011.
  10. Zhuang, JJ (18 December 2007). "Zimbra Blog: Why we switched to Jetty". Zimbra . VMware . Retrieved 12 Apr 2011.
  11. "Powered by Jetty". Archived from the original on 28 June 2020. Retrieved 24 Sep 2012.
  12. Lieber, Adam (December 2008). "Jetty: The Twelve Year Journey to Market Maturity". Linux Gazette. Retrieved 28 June 2013.
  13. "About Jetty". Jetty. Archived from the original on 6 January 2012. Retrieved 13 June 2024.
  14. "Jetty/FAQ - Eclipsepedia". Wiki.eclipse.org. 2011-09-06. Retrieved 2014-07-17.
  15. "Jetty - Java HTTP Servlet Server / Mailing Lists". Sourceforge.net. Retrieved 2014-07-17.
  16. About Jetty Archived 2015-05-31 at the Wayback Machine , Located on Codehaus.
  17. About Jetty Archived 2010-11-21 at the Wayback Machine , Located on Eclipse.
  18. "The Eclipse Jetty Project repository has moved to Github!". 2016-02-12.
  19. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 "Jetty Versions". eclipse.org. Retrieved 2024-10-11.

Official website OOjs UI icon edit-ltr-progressive.svg