Eclipse Jetty est un environnement d'exécution de servlet Java (conteneur de serviteur, implémentation partielle de Java EE) et un serveur Web. Apache Tomcat est une implémentation bien connue du conteneur de servlet, mais Jetty est plus ancien [^ 1] et plus léger [^ 2]. Le support commercial est fourni par le contributeur actif Webtide et intégré à Apache Hadoop. / Jetty) ou utilisé par Google App Engine.
[^ 1]: Jetty est sorti pour la première fois en 1995 et Tomcat est sorti pour la première fois en 1999.
Jetty a une empreinte mémoire plus petite que Tomcat, ce qui permet d'économiser des ressources lors de l'exécution de servlets Java dans un environnement virtualisé en conteneur. Cet article présente la procédure d'utilisation de cette Jetty sur Docker.
Image officielle Docker est fournie [^ 3]. Vous pouvez choisir une image parmi une combinaison d'OpenJDK LTS (version Red Hat) et de JRE, Debian et Debian slim pour chaque version de Jetty.
version | Développeur | Java | Java EE | Servlet | JSP | Période de support | Statut | Remarques |
---|---|---|---|---|---|---|---|---|
11 | Eclipse | 11~ | 8 | 4.0.2 | 2.3 | 2020~ | alpha | Changé en espace de noms JakartaEE |
10 | Eclipse | 11~ | 8 | 4.0.2 | 2.3 | 2019~ | bêta | |
9.4 | Eclipse | 1.8~ | 7 | 3.1 | 2.3 | 2016~ | version stable | |
9.3 | Eclipse | 1.8~ | 7 | 3.1 | 2.3 | 2015~ | non recommandé | HTTP/2, prend en charge Fast CGI |
9.2 | Eclipse | 1.7~ | 7 | 3.1 | 2.3 | 2014~2018 | EOL | La distribution d'images Docker a commencé |
9.1 | Eclipse | 1.7~ | 7 | 3.1 | 2.3 | 2013~2014 | EOL | |
9 | Eclipse | 1.7~ | 7 | 3.1-beta | 2.3 | 2013~2013 | EOL | |
8 | Eclipse/Codehaus | 1.6~ | 6 | 3 | 2.2 | 2009~2014 | EOL | |
7 | Eclipse/Codehaus | 1.5~ | 5 | 2.5 | 2.1 | 2008~2014 | EOL | Prend en charge WebSocket et SPDY v3 |
6 | Codehaus | 1.4~1.5 | 5 | 2.5 | 2 | 2006~2010 | EOL | |
5 | Sourceforge | 1.2~1.5 | 1.4 | 2.4 | 2 | 2003~2009 | Antique | |
4 | Sourceforge | 1.2、J2ME | 1.3 | 2.3 | 1.2 | 2001~2006 | Ancien | |
3 | Sourceforge | 1.2 | 1.2 | 2.2 | 1.1 | 1999~2002 | Fossilisé | HTTP/1.Soutien 1 |
2 | Mortbay | 1.1 | - | 2.1 | 1 | 1998~2000 | Légendaire | |
1 | Mortbay | 1 | - | - | - | 1995~1998 | Mythique |
Ici, nous sélectionnons Jetty9 sur OpenJDK11 sur Debian10:
[^ 3]: À propos, Google Cloud Platform Jetty Docker Image est également publié sous licence Apache-2.0.
docker pull jetty:9.4.31-jdk11
Le déploiement du servlet est facile, il suffit de mettre le fichier WAR ou le répertoire du servlet non compressé dans / var / lib / jetty / webapps
:
FROM jetty:9.4.31-jdk11
ADD sample.war /var/lib/jetty/webapps
Vous pouvez également spécifier n'importe quel emplacement dans context.xml
:
FROM jetty:9.4.31-jdk11
ADD sampleApp.xml /var/lib/jetty/webapps
ADD sample /usr/local/sample
sampleApp.xml
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/sample</Set>
<Set name="war">/usr/local/sample</Set>
</Configure>
Vous pouvez voir les préférences actuelles en spécifiant l'option --list-config
:
$ docker run --rm jetty:9.4.31-jdk11 --list-config
Java Environment:
-----------------
java.home = /usr/local/openjdk-11 (null)
java.vm.vendor = Oracle Corporation (null)
java.vm.version = 11.0.8+10 (null)
java.vm.name = OpenJDK 64-Bit Server VM (null)
java.vm.info = mixed mode (null)
java.runtime.name = OpenJDK Runtime Environment (null)
java.runtime.version = 11.0.8+10 (null)
java.io.tmpdir = /tmp/jetty (null)
user.dir = /var/lib/jetty (null)
user.language = en (null)
user.country = null (null)
Jetty Environment:
-----------------
jetty.version = 9.4.31.v20200723
jetty.tag.version = master
jetty.home = /usr/local/jetty
jetty.base = /var/lib/jetty
Config Search Order:
--------------------
<command-line>
${jetty.base} -> /var/lib/jetty
${jetty.home} -> /usr/local/jetty
JVM Arguments:
--------------
(no jvm args specified)
System Properties:
------------------
(no system properties specified)
Properties:
-----------
java.version = 11.0.8
java.version.major = 11
java.version.micro = 8
java.version.minor = 0
java.version.platform = 11
jetty.base = /var/lib/jetty
jetty.base.uri = file:///var/lib/jetty
jetty.home = /usr/local/jetty
jetty.home.uri = file:///usr/local/jetty
Jetty Server Classpath:
-----------------------
Version Information on 37 entries in the classpath.
Note: order presented here is how they would appear on the classpath.
changes to the --module=name command line options will be reflected here.
0: 1.4.1.v201005082020 | ${jetty.home}/lib/mail/javax.mail.glassfish-1.4.1.v201005082020.jar
1: (dir) | ${jetty.base}/resources
2: 3.1.0 | ${jetty.home}/lib/servlet-api-3.1.jar
3: 3.1.0.M0 | ${jetty.home}/lib/jetty-schemas-3.1.jar
4: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-http-9.4.31.v20200723.jar
5: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-server-9.4.31.v20200723.jar
6: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-xml-9.4.31.v20200723.jar
7: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-util-9.4.31.v20200723.jar
8: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-io-9.4.31.v20200723.jar
9: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-jndi-9.4.31.v20200723.jar
10: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-security-9.4.31.v20200723.jar
11: 1.3 | ${jetty.home}/lib/transactions/javax.transaction-api-1.3.jar
12: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-servlet-9.4.31.v20200723.jar
13: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-webapp-9.4.31.v20200723.jar
14: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-plus-9.4.31.v20200723.jar
15: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-annotations-9.4.31.v20200723.jar
16: 7.3.1 | ${jetty.home}/lib/annotations/asm-7.3.1.jar
17: 7.3.1 | ${jetty.home}/lib/annotations/asm-analysis-7.3.1.jar
18: 7.3.1 | ${jetty.home}/lib/annotations/asm-commons-7.3.1.jar
19: 7.3.1 | ${jetty.home}/lib/annotations/asm-tree-7.3.1.jar
20: 1.3 | ${jetty.home}/lib/annotations/javax.annotation-api-1.3.jar
21: 3.19.0.v20190903-0936 | ${jetty.home}/lib/apache-jsp/org.eclipse.jdt.ecj-3.19.0.jar
22: 9.4.31.v20200723 | ${jetty.home}/lib/apache-jsp/org.eclipse.jetty.apache-jsp-9.4.31.v20200723.jar
23: 8.5.54 | ${jetty.home}/lib/apache-jsp/org.mortbay.jasper.apache-el-8.5.54.jar
24: 8.5.54 | ${jetty.home}/lib/apache-jsp/org.mortbay.jasper.apache-jsp-8.5.54.jar
25: 1.2.5 | ${jetty.home}/lib/apache-jstl/org.apache.taglibs.taglibs-standard-impl-1.2.5.jar
26: 1.2.5 | ${jetty.home}/lib/apache-jstl/org.apache.taglibs.taglibs-standard-spec-1.2.5.jar
27: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-client-9.4.31.v20200723.jar
28: 9.4.31.v20200723 | ${jetty.home}/lib/jetty-deploy-9.4.31.v20200723.jar
29: 1.0 | ${jetty.home}/lib/websocket/javax.websocket-api-1.0.jar
30: 9.4.31.v20200723 | ${jetty.home}/lib/websocket/javax-websocket-client-impl-9.4.31.v20200723.jar
31: 9.4.31.v20200723 | ${jetty.home}/lib/websocket/javax-websocket-server-impl-9.4.31.v20200723.jar
32: 9.4.31.v20200723 | ${jetty.home}/lib/websocket/websocket-api-9.4.31.v20200723.jar
33: 9.4.31.v20200723 | ${jetty.home}/lib/websocket/websocket-client-9.4.31.v20200723.jar
34: 9.4.31.v20200723 | ${jetty.home}/lib/websocket/websocket-common-9.4.31.v20200723.jar
35: 9.4.31.v20200723 | ${jetty.home}/lib/websocket/websocket-server-9.4.31.v20200723.jar
36: 9.4.31.v20200723 | ${jetty.home}/lib/websocket/websocket-servlet-9.4.31.v20200723.jar
Jetty Active XMLs:
------------------
${jetty.home}/etc/jetty-bytebufferpool.xml
${jetty.home}/etc/jetty-threadpool.xml
${jetty.home}/etc/jetty.xml
${jetty.home}/etc/jetty-webapp.xml
${jetty.home}/etc/jetty-plus.xml
${jetty.home}/etc/jetty-annotations.xml
${jetty.home}/etc/jetty-deploy.xml
${jetty.home}/etc/jetty-http.xml
Veuillez vous référer au Document officiel pour les éléments qui peuvent être définis.
L'option JVM peut être spécifiée avec la variable d'environnement JAVA_OPTIONS
.
Recommended Posts