Original author(s) | Greg Wilkins |
---|---|
Developer(s) | Eclipse Foundation |
Initial release | 1995 |
Stable release(s) | |
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 |
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.
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]
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.
Version | Home | Min Java Version | Protocols | Servlet Version | JSP Version | Status |
---|---|---|---|---|---|---|
12.0.x | Eclipse | 17 | HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI, JakartaEE Namespace | 6.0 | 3.1 | Stable [19] |
11.0.x | Eclipse | 11 | HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI, JakartaEE Namespace | 5.0 | 3.0 | Stable [19] |
10.0.x | Eclipse | 11 | HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI | 4.0 | 2.3 | Stable [19] |
9.4.x | Eclipse | 1.8 | HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI | 3.1 | 2.3 | Stable [19] |
9.3.x | Eclipse | 1.8 | HTTP/1.1 RFC7230, HTTP/2 RFC7540, WebSocket RFC6455/JSR356, FastCGI | 3.1 | 2.3 | Deprecated [19] |
9.2.x | Eclipse | 1.7 | HTTP/1.1 RFC2616, WebSocket RFC6455, SPDY v3 | 3.1 | 2.3 | Deprecated [19] |
9.1.x | Eclipse | 1.7 | HTTP/1.1 RFC2616 | 3.1 | 2.3 | Deprecated [19] |
9.0.x | Eclipse | 1.7 | HTTP/1.1 RFC2616 | 3.1-beta | 2.3 | Deprecated [19] |
8.x | Eclipse/Codehaus | 1.6 | HTTP/1.1 RFC2616, WebSocket RFC6455, SPDY v3 | 3.0 | 2.2 | Venerable [19] |
7.x | Eclipse/Codehaus | 1.5 | HTTP/1.1 RFC2616, WebSocket RFC6455, SPDY v3 | 2.5 | 2.1 | Venerable [19] |
6.x | Codehaus | 1.4–1.5 | HTTP/1.1 RFC2616 | 2.5 | 2.0 | Antique [19] |
5.x | SourceForge | 1.2–1.5 | HTTP/1.1 RFC2616 | 2.4 | 2.0 | Relic [19] |
4.x | SourceForge | 1.2, J2ME | HTTP/1.1 RFC2616 | 2.3 | 1.2 | Ancient [19] |
3.x | SourceForge | 1.2 | HTTP/1.1 RFC2068 | 2.2 | 1.1 | Fossilized [19] |
2.x | Mortbay | 1.1 | HTTP/1.0 RFC1945 | 2.1 | 1.0 | Legendary [19] |
1.x | Mortbay | 1.0 | HTTP/1.0 RFC1945 | - | - | Mythical [19] |
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.
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.
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.
Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license.
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.
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.
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.