Per continuare a ricevere aggiornamenti della sicurezza ed essere idoneo all'utilizzo, devi eseguire l'upgrade delle tue applicazioni alla versione di runtime più recente supportata all'assistenza tecnica. Dovresti anche valutare la migrazione a Cloud Run, l'ultima evoluzione di Google Cloud Serverless. Cloud Run è progettato migliorare l'esperienza con App Engine, incorporando molti dei migliori caratteristiche sia dell'ambiente standard che dell'ambiente flessibile. Per confrontare le funzionalità e capire come eseguire la migrazione, consulta la guida di confronto tra App Engine e Cloud Run
Il processo di upgrade di un'app esistente dipende dalla versione del runtime attualmente la tua app usa:
Java 8: devi eseguire la migrazione dell'app alla versione Java supportata più recente. Il 31 gennaio 2024 è terminato il supporto di Java 8. Il tuo le applicazioni Java 8 esistenti continueranno a essere eseguite e riceveranno traffico. Tuttavia, non potrai eseguire il deployment di nuove applicazioni o aggiornare applicazioni esistenti che utilizzano i runtime dopo la data di fine del supporto.
Java 11 o Java 17:
Questi runtime sono versioni Java supportate. Per continuare l'upgrade alla versione di assistenza più recente, segui questi passaggi:
Aggiorna il file
app.yaml
specificando la versione di Java su cui vuoi eseguire l'app. Ad esempio:runtime: javaVERSION
Dove VERSION è il numero di versione
MAJOR
.Esempio: per Java 21, specifica 21 come
runtime: java21
. 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 l'aggiornamento le tue app e le dipendenze di terze parti per utilizzare artefatti Java più recenti come lo spazio dei nomiJakarta
.Java Enterprise Edition 8 (EE8): Java EE8 consente di utilizzare
javax.servlet.*
API, ma devi apportare piccole modifiche alla 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 in bundle legacy
Compatibilità del runtime Java
Fai riferimento alla 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, vedi 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 che includano lo spazio dei nomi Jakarta . Per ulteriori informazioni, vedi Eseguire l'upgrade di Java 21 su EE10. |
Esegui 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
:
Cambia il numero di versione nel file di configurazione di
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 delle applicazioni 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 restanti dipendenze di terze parti dell'applicazione agli artefatti 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 Proprietà
appengine.use.virtualthreads
nel tagsystem-properties
nel tuoappengine-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 tue applicazioni su Java EE8, devi dichiarare un nuovo
Tag system-properties
in
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
thread virtuali, aggiungi la proprietà appengine.use.virtualthreads
all'interno del tag system-properties
. Esempio:
<property name="appengine.use.virtualthreads" value="true"/>