Vous devez mettre à niveau vos applications vers la dernière version d'exécution compatible pour continuer à recevoir les mises à jour de sécurité et bénéficier de l'assistance technique.
Le processus de mise à niveau d'une application existante dépend de la version d'exécution actuellement utilisée par votre application :
Java 8 : vous devez migrer votre application vers la dernière version compatible de Java. Java 8 n'est plus compatible depuis le 31 janvier 2024. Vos applications Java 8 existantes continueront à fonctionner et à recevoir du trafic. Toutefois, vous ne pourrez pas déployer de nouvelles applications ou mettre à jour celles que vous possédez déjà qui utilisent des environnements d'exécution après leur date de fin de prise en charge.
Environnements d'exécution Java de deuxième génération (après fin de compatibilité): pour passer à une version compatible de Java, procédez comme suit:
Mettez à jour le fichier
app.yaml
en spécifiant la version de Java que vous souhaitez que votre application exécute. Exemple :runtime: javaVERSION
Où VERSION est le numéro de version de
MAJOR
. Par exemple, pour utiliser la dernière version de Java, Java 21, spécifiez21
. Pour en savoir plus, consultez la présentation de l'environnement d'exécution Java.Si vous utilisez d'anciens services groupés, vous devez mettre à jour vos applications pour qu'elles s'exécutent sur l'une des versions suivantes :
Java Enterprise Edition 10 (EE10 – par défaut, recommandé): Java EE10 n'est pas compatible avec les API
javax.servlet.*
et vous oblige à mettre à jour vos applications et vos dépendances tierces pour qu'elles utilisent les artefacts Java les plus récents comme l'espace de nomsJakarta
.Java Enterprise Edition 8 (EE8): Java EE8 vous permet d'utiliser les API
javax.servlet.*
, mais vous devez apporter des modifications mineures à la configuration de votre fichierappengine-web.xml
.Consultez la section Passer à Java 21 pour les anciens services groupés pour connaître toutes les options.
Java 17:
App Engine est compatible avec cette version. Pour passer à la dernière version compatible, procédez comme suit:
Mettez à jour le fichier
app.yaml
en spécifiant la version de Java que vous souhaitez que votre application exécute. Exemple :runtime: javaVERSION
Où VERSION est le numéro de version de
MAJOR
. Par exemple, pour utiliser la dernière version de Java, Java 21, spécifiez21
. Pour en savoir plus, consultez la présentation de l'environnement d'exécution Java.Si vous utilisez d'anciens services groupés, vous devez mettre à jour vos applications pour qu'elles s'exécutent sur l'une des versions suivantes :
Java Enterprise Edition 10 (EE10 – par défaut, recommandé): Java EE10 n'est pas compatible avec les API
javax.servlet.*
et vous oblige à mettre à jour vos applications et vos dépendances tierces pour qu'elles utilisent les artefacts Java les plus récents comme l'espace de nomsJakarta
.Java Enterprise Edition 8 (EE8): Java EE8 vous permet d'utiliser les API
javax.servlet.*
, mais vous devez apporter des modifications mineures à la configuration de votre fichierappengine-web.xml
.
Consultez la section Passer à Java 21 pour les anciens services groupés pour connaître toutes les options.
Passer à Java 21 pour les anciens services groupés
Compatibilité avec l'environnement d'exécution Java
Reportez-vous au tableau suivant pour savoir quelles versions de Java sont compatibles avec vos versions de Jetty et de servlet :
Enterprise Edition (EE) | Version de Jetty | Version Java compatible | Servlet | Compatibilité |
---|---|---|---|---|
EE7 | 9,4 | 11 | 2.5 ou 3.1 | |
EE7 | 9,4 | 17 | 2.5 ou 3.1 | |
EE8 | 12 | 21 | 2.5 et versions ultérieures | Java EE8 est rétrocompatible avec Java EE6 et les versions ultérieures. Pour en savoir plus, consultez Passer à Java 21 sur EE8. |
EE10 | 12 | 21 | 6.0 (recommandée). Java 21 est configuré pour exécuter EE10 par défaut. | Pour utiliser Java EE10, vous devez mettre à jour les servlets et les dépendances de votre application afin d'inclure l'espace de noms Jakarta . Pour en savoir plus, consultez l'article Mettre à niveau Java 21 sur EE10. |
Passer à Java 21 sur EE10
Pour utiliser Java 21 sur Enterprise Edition 10 (EE10), vous devez mettre à niveau les servlets et les dépendances de votre application dans vos fichiers Maven et Gradle pour inclure l'espace de noms Jakarta
:
Remplacez le numéro de version dans le fichier de configuration
web.xml
parversion=6.0
. Exemple :<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> ... </web-app>
Renommez les servlets et les dépendances de votre application de
javax.servlet.*
àjakarta.servlet.*
:import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet(name = "viewer", urlPatterns = {"/view"}) public class MyServlet extends HttpServlet { ......
Mettez à jour les dépendances tierces restantes de votre application vers des artefacts Java plus récents en fonction de l'espace de noms
Jakarta
.Facultatif : Java 21 est compatible avec les threads virtuels. Pour activer les threads virtuels, ajoutez la propriété
appengine.use.virtualthreads
dans la balisesystem-properties
de votre fichierappengine-web.xml
.
Mettre à niveau vers Java 21 sur EE8
Vous pouvez continuer à utiliser les API javax.servlet.*
sur Java EE8 sans modifier la configuration majeure de l'application, car Jetty 12 offre une rétrocompatibilité pour Java EE6 et versions ultérieures. Pour exécuter vos applications sur Java EE8, vous devez déclarer un nouveau tag system-properties
dans votre fichier appengine-web.xml
avec la configuration app.engine.use.EE8
non définie par défaut :
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java21</runtime>
<system-properties>
<property name="appengine.use.EE8" value="true"/>
</system-properties>
<app-engine-apis>true</app-engine-apis>
</appengine-web-app>
Facultatif : Java 21 est compatible avec les threads virtuels. Pour activer les threads virtuels, vous devez ajouter la propriété appengine.use.virtualthreads
dans la balise system-properties
. Exemple :
<property name="appengine.use.virtualthreads" value="true"/>