Esegui l'upgrade delle applicazioni all'ultima versione del runtime supportata per continuare a ricevere aggiornamenti della sicurezza ed essere idoneo all'assistenza tecnica.
La procedura di upgrade di un'applicazione esistente dipende dalla versione di runtime utilizzata dall'applicazione:
Java 8: esegui la migrazione dell'applicazione all'ultima versione di Java supportata. Java 8 ha raggiunto la fine del supporto il 31 gennaio 2024 e verrà ritirato il 31 gennaio 2026. Dopo la ritiro, non potrai eseguire il deployment di applicazioni Java 8, anche se la tua organizzazione ha utilizzato in precedenza una policy dell'organizzazione per riattivare i deployment di runtime legacy. Le tue applicazioni Java 8 esistenti continueranno a essere eseguite e a ricevere traffico dopo la data di ritiro.
Java 11: esegui l'upgrade dell'applicazione all'ultima versione di Java supportata. Java 11 ha raggiunto la fine del supporto il 31 ottobre 2024 e verrà ritirato il 31 ottobre 2025. Dopo il ritiro, non potrai eseguire il deployment delle applicazioni Java 11. Le tue applicazioni Java 11 esistenti continueranno a essere eseguite e a ricevere traffico dopo la data di ritiro.
Runtime di seconda generazione supportati (Java 17 e Java 21):
App Engine supporta le versioni del runtime Java di seconda generazione, come Java 17 e Java 21. Per eseguire l'upgrade a Java 25 (anteprima):
Aggiorna il file
app.yamlspecificando una versione di Java che vuoi che la tua app esegua. Ad esempio:runtime: javaVERSIONdove VERSION è il numero di versione di
MAJOR. Ad esempio, per utilizzare l'ultima versione di Java, Java 25 (anteprima), specifica25. Per saperne di più, consulta la panoramica del runtime Java.Se utilizzi servizi in bundle legacy, esegui l'upgrade delle applicazioni per eseguirle su:
Java Enterprise Edition 11 (E11): EE 11 non supporta le API
javax.servlet.*e richiede l'aggiornamento delle applicazioni e delle dipendenze di terze parti per utilizzare artefatti Java più recenti come lo spazio dei nomiJakarta. Java 25 (anteprima) per impostazione predefinita viene eseguito su EE 11 e non supporta EE 10.Java Enterprise Edition 8 (EE 8): Java EE 8 ti consente di utilizzare le API
javax.servlet.*, ma devi apportare piccole modifiche alla configurazione del fileappengine-web.xml.
Esegui l'upgrade a una versione di Java supportata per i servizi legacy in bundle
Compatibilità del runtime Java
Consulta la seguente tabella per scoprire quali versioni di Java sono compatibili con le tue versioni di servlet. Per maggiori dettagli sulle funzionalità del punto di ingresso, sulle configurazioni delle proprietà di sistema, sul supporto di Jetty risultante e sulle versioni EE compatibili, consulta Funzionalità del punto di ingresso.
| Enterprise Edition (EE) | Versione Java | Servlet | Compatibilità |
|---|---|---|---|
| EE7 | 11 | 2.5 o 3.1 | Non è disponibile assistenza della community per EE7. Java 11 ha raggiunto la fine del supporto. Ti consigliamo di eseguire l'upgrade dell'app per utilizzare l'ultima versione di Java. |
| EE7 | 17 | 2.5 o versioni successive | Non è disponibile assistenza della community per EE7. Ti consigliamo di eseguire l'upgrade dell'app per utilizzare EE 8 e versioni successive. |
| EE 8 | 17/21/25 (anteprima) | 2.5 e versioni successive | Java EE 8 è compatibile con le versioni precedenti di Java EE6 e successive. Per ulteriori informazioni, vedi Eseguire l'upgrade di Java su una versione Enterprise Edition (EE) compatibile. |
| EE 10 | 17/21 | 6.0 (valore predefinito, consigliato). Java 21 è configurato per eseguire EE 10 per impostazione predefinita. | Per utilizzare Java EE 10, aggiorna 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 su una versione Enterprise Edition (EE) compatibile. Non puoi utilizzare Java 25 (anteprima) su EE10. |
| EE 11 | 25 | 6.1 (valore predefinito, consigliato). Java 25 (anteprima) è configurato per eseguire EE 11 per impostazione predefinita. | Per utilizzare Java EE 11, aggiorna 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 su una versione Enterprise Edition (EE) compatibile. |
Eseguire l'upgrade di Java a una versione Enterprise Edition (EE) compatibile
Per utilizzare Java 25 (anteprima) su Enterprise Edition 11 (EE 11) o Java 21 su Enterprise Edition 10 (EE 10), esegui l'upgrade dei servlet e delle dipendenze dell'applicazione nei file Maven e Gradle per includere lo spazio dei nomi Jakarta:
Java 25 (anteprima, EE 11)
Per utilizzare Java 25 (anteprima) su Enterprise Edition 11 (EE 11), segui questi passaggi:
Modifica il numero di versione nel file di configurazione
web.xmlinversion=6.1. 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_1.xsd" version="6.1"> ... </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 dipendenze di terze parti rimanenti dell'applicazione con artefatti Java più recenti, a seconda dello spazio dei nomi
Jakarta.Aggiungi la seguente proprietà di sistema al file
appengine-web.xml:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java25</runtime> <system-properties> <property name="appengine.use.EE11" value="true"/> </system-properties> <app-engine-apis>true</app-engine-apis> </appengine-web-app>(Facoltativo) Java 25 include il supporto per i thread virtuali. Per attivare i thread virtuali, aggiungi la proprietà
appengine.use.virtualthreadsall'interno del tagsystem-propertiesnel fileappengine-web.xml.
Java 21 (EE 10)
Per utilizzare Java 21 su Enterprise Edition 10 (EE 10), segui questi passaggi:
Modifica il numero di versione nel file di configurazione
web.xmlinversion=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 dipendenze di terze parti rimanenti dell'applicazione con artefatti Java più recenti, a seconda dello spazio dei nomi
Jakarta.Aggiungi la seguente proprietà di sistema al file
appengine-web.xml:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java21</runtime> <!-- or java17 --> <system-properties> <property name="appengine.use.EE10" 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.virtualthreadsall'interno del tagsystem-propertiesnel fileappengine-web.xml.
Java 17 e versioni successive (EE 8)
Utilizza le API javax.servlet.* su Java EE 8 senza modifiche importanti alla configurazione dell'applicazione. EE 8 offre la compatibilità con le versioni precedenti per Java EE 6
e versioni successive.
Per eseguire le applicazioni su Java EE 8, dichiara un nuovo tag system-properties nel file appengine-web.xml 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>java17</runtime>
<system-properties>
<property name="appengine.use.EE8" value="true"/>
</system-properties>
<app-engine-apis>true</app-engine-apis>
</appengine-web-app>
(Facoltativo) Java versione 21 e successive 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"/>