Per continuare a ricevere aggiornamenti della sicurezza e poter usufruire dell'assistenza tecnica, devi eseguire l'upgrade delle tue applicazioni alla versione di runtime supportata più recente.
La procedura di upgrade di un'app esistente dipende dalla versione di runtime attualmente utilizzata dall'app:
Java 8: devi eseguire la migrazione dell'app alla versione Java supportata più recente. Il 31 gennaio 2024 è terminato il supporto di Java 8. Le tue applicazioni Java 8 esistenti continueranno a funzionare e a ricevere traffico. Tuttavia, non puoi eseguire il deployment di nuove applicazioni o aggiornare quelle esistenti che utilizzano i runtime dopo la data di fine del supporto.
Runtime Java di seconda generazione (dopo il termine dell'assistenza): per eseguire l'upgrade a una versione di Java supportata, segui questi passaggi:
Aggiorna il file
app.yaml
specificando la versione di Java in cui vuoi eseguire la tua app. Ad esempio:runtime: javaVERSION
dove VERSION è il numero di versione
MAJOR
. Ad esempio, per utilizzare la versione Java più recente, Java 21, specifica21
. Per ulteriori informazioni, consulta la panoramica del runtime Java.Se utilizzi servizi in bundle precedenti, devi eseguire l'upgrade delle tue app in modo che vengano eseguite su:
Java Enterprise Edition 10 (EE10, predefinito, consigliato): Java EE10 non supporta le API
javax.servlet.*
e richiede di aggiornare le app e le dipendenze di terze parti per utilizzare elementi Java più recenti come lo spazio dei nomiJakarta
.Java Enterprise Edition 8 (EE8): Java EE8 ti consente di utilizzare le API
javax.servlet.*
, ma devi apportare piccole modifiche alla configurazione del fileappengine-web.xml
.Per tutte le opzioni, consulta Eseguire l'upgrade a Java 21 per i servizi in bundle legacy.
Java 17:
App Engine supporta questa versione. Per continuare a eseguire l'upgrade alla versione supportata più recente:
Aggiorna il file
app.yaml
specificando la versione di Java in cui vuoi eseguire la tua app. Ad esempio:runtime: javaVERSION
dove VERSION è il numero di versione
MAJOR
. Ad esempio, per utilizzare la versione Java più recente, Java 21, specifica21
. Per ulteriori informazioni, consulta la panoramica del runtime Java.Se utilizzi servizi in bundle precedenti, devi eseguire l'upgrade delle tue app in modo che vengano eseguite su:
Java Enterprise Edition 10 (EE10, predefinito, consigliato): Java EE10 non supporta le API
javax.servlet.*
e richiede di aggiornare le app e le dipendenze di terze parti per utilizzare elementi Java più recenti come lo spazio dei nomiJakarta
.Java Enterprise Edition 8 (EE8): Java EE8 ti consente di utilizzare le API
javax.servlet.*
, ma devi apportare piccole modifiche di configurazione al fileappengine-web.xml
.
Per tutte le opzioni, consulta Eseguire l'upgrade a Java 21 per i servizi in bundle legacy.
Upgrade a Java 21 per i servizi legacy in bundle
Compatibilità con il runtime Java
Consulta la tabella seguente per capire quali versioni di Java sono compatibili con le tue versioni di Jetty e servlet:
Enterprise Edition (EE) | Versione Jetty | Versione Java | Servlet | Compatibilità |
---|---|---|---|---|
EE7 | 9,4 | 11 | 2.5 o 3.1 | |
EE7 | 9,4 | 17 | 2.5 o 3.1 | |
EE8 | 12 | 21 | 2.5 e versioni successive | Java EE8 è compatibile con le versioni precedenti di Java EE6. Per ulteriori informazioni, consulta Eseguire l'upgrade a Java 21 su EE8. |
EE10 | 12 | 21 | 6.0 (opzione consigliata). Java 21 è configurato per eseguire EE10 per impostazione predefinita. | Per utilizzare Java EE10, devi aggiornare i servlet e le dipendenze dell'applicazione in modo da includere lo spazio dei nomi Jakarta . Per ulteriori informazioni, vedi Eseguire l'upgrade di Java 21 su EE10. |
Eseguire l'upgrade a Java 21 su EE10
Per utilizzare Java 21 su Enterprise Edition 10 (EE10),
devi eseguire l'upgrade dei servlet e delle dipendenze dell'applicazione nei file Maven e Gradle
per includere lo spazio dei nomi Jakarta
:
Modifica il numero di versione nel file di configurazione
web.xml
inversion=6.0
. Ad esempio:<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>
Rinomina i servlet e le dipendenze dell'applicazione da
javax.servlet.*
ajakarta.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 { ......
Aggiorna le rimanenti dipendenze di terze parti dell'applicazione agli elementi Java più recenti, a seconda dello spazio dei nomi
Jakarta
.(Facoltativo) Java 21 include il supporto per i thread virtuali. Per attivare i thread virtuali, aggiungi la proprietà
appengine.use.virtualthreads
al tagsystem-properties
nel fileappengine-web.xml
.
Eseguire l'upgrade a Java 21 su EE8
Puoi continuare a utilizzare le API javax.servlet.*
su Java EE8 senza apportare modifiche sostanziali alla configurazione dell'applicazione, perché Jetty 12 offre compatibilità con le versioni precedenti per Java EE6 e versioni successive. Per eseguire le applicazioni su Java EE8, devi dichiarare un nuovo
system-properties
tag nel
appengine-web.xml
file con la configurazione app.engine.use.EE8
non predefinita:
<?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>
(Facoltativo) Java 21 include il supporto per i thread virtuali. Per attivare i thread virtuali, aggiungi la proprietà appengine.use.virtualthreads
all'interno del tag system-properties
. Esempio:
<property name="appengine.use.virtualthreads" value="true"/>