Jetty (web server)

Last updated
Jetty
Original author(s) Greg Wilkins
Developer(s) Eclipse Foundation
Initial release1995;28 years ago (1995)
Stable release(s)
12.0.x12.0.0 / August 7, 2023;22 days ago (2023-08-07) [1]
11.0.x11.0.15 / April 13, 2023;4 months ago (2023-04-13) [1]
10.0.x10.0.15 / April 13, 2023;4 months ago (2023-04-13) [1]
9.4.x9.4.52 / August 28, 2023;1 day 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 eclipse.dev/jetty/

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 provides Web services in an embedded Java application and it is already a component of the Eclipse IDE. It supports AJP, JASPI, JMX, JNDI, OSGi, WebSocket and other Java technologies. [5]

History

Originally developed by software engineer Greg Wilkins, Jetty was originally 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] but 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 Namespace6.03.1Stable [19]
11.0.xEclipse11 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI, JakartaEE Namespace5.03.0Stable [19]
10.0.xEclipse11 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI 4.02.3Stable [19]
9.4.xEclipse1.8 HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI 3.12.3Stable [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, that 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 was a 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 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.

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 open source.

<span class="mw-page-title-main">Apache Jena</span> Open source semantic web framework for Java

Apache Jena is an open source Semantic Web framework for Java. It provides an API to extract data from and write to RDF graphs. The graphs are represented as an abstract "model". A model can be sourced with data from files, databases, URLs or a combination of these. A model can also be queried through SPARQL 1.1.

OpenJPA is an open source implementation of the Java Persistence API specification. It is an object-relational mapping (ORM) solution for the Java language, which simplifies storing objects in databases. It is open-source software distributed under the Apache License 2.0.

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 Codehaus in 2006. These two projects were combined at the Apache Software Foundation. The name "CXF" was derived by combining "Celtix" and "XFire".

Metro is a high-performance, extensible, easy-to-use web service stack. Although historically an open-source part of the GlassFish application server, it can also be used in a stand-alone configuration. Components of Metro include: JAXB RI, JAX-WS RI, SAAJ RI, StAX and WSIT. Originally available under the CDDL and GPLv2 with classpath exception, it is now available under Eclipse Distribution License

A Mobile Web Server is software designed for modern-day smartphones to host personal web servers, through the use of open sourced software, such as, i-jetty, an open source software, based on jetty. I-jetty is an open source web container, serving Java-based web content such as, servlets and JSPs. Jetty is written in Java and its API is available as a set of JARs. Developers can instantiate a jetty container as an object, instantly adding network and web connectivity to a stand-alone Java app. Jetty is built for scalable performance allowing tens of thousands of HTTP connections and hundreds of thousands of simultaneous web socket connections. Jetty is optimized and known for creating small memory footprints, increasing scalability and performance.

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.

<span class="mw-page-title-main">Google Plugin for Eclipse</span> Set of Java development tools

Google Plugin for Eclipse (GPE) was a set of development tools that enabled Java developers to design, build, optimize, and deploy cloud computing applications. developers in creating complex user interfaces, generating Ajax code using the GWT Web Toolkit, and deploying applications to Google App Engine. GPE installed into the Eclipse integrated development environment (IDE) using the extensible plugin system. GPE was available under the Eclipse Public License 1.0.

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.

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" . 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". Codehaus. Archived from the original on 6 January 2012. Retrieved 30 November 2011.
  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 2023-08-07.

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