Actualiza tus aplicaciones a la versión del entorno de ejecución compatible más reciente para seguir recibiendo actualizaciones de seguridad y ser apto para la asistencia técnica.
El proceso de actualización de una aplicación existente depende de la versión del entorno de ejecución que use la aplicación:
Java 8: Migra tu aplicación a la versión de Java compatible más reciente. Java 8 llegó al fin de la asistencia el 31 de enero de 2024 y se dará de baja el 31 de enero de 2026. Después de la baja, no podrás implementar aplicaciones de Java 8, incluso si tu organización usó anteriormente una política de la organización para volver a habilitar las implementaciones de entornos de ejecución heredados. Tus aplicaciones existentes de Java 8 seguirán ejecutándose y recibiendo tráfico después de la fecha de baja.
Java 11: Actualiza tu aplicación a la versión de Java compatible más reciente. Java 11 llegó al fin de la asistencia el 31 de octubre de 2024 y dejará de estar disponible el 31 de octubre de 2025. Después de la baja, no podrás implementar aplicaciones de Java 11. Tus aplicaciones existentes de Java 11 seguirán ejecutándose y recibiendo tráfico después de la fecha de baja.
Entornos de ejecución de segunda generación compatibles (Java 17 y Java 21):
App Engine admite versiones de entorno de ejecución de Java de segunda generación, como Java 17 y Java 21. Para actualizar a Java 25 (versión preliminar), haz lo siguiente:
Actualiza el archivo
app.yamlespecificando una versión de Java que deseas que ejecute tu app. Por ejemplo:runtime: javaVERSIONEn el ejemplo anterior, VERSION es el número de versión
MAJOR. Por ejemplo, para usar la versión más reciente de Java, Java 25 (versión preliminar), especifica25. Para obtener más información, consulta la descripción general del entorno de ejecución de Java.Si usas servicios agrupados en paquetes heredados, actualiza tus aplicaciones para que se ejecuten en:
Java Enterprise Edition 11 (E11): EE 11 no admite las APIs de
javax.servlet.*y requiere que actualices tus aplicaciones y dependencias de terceros para usar artefactos de Java más recientes, como el espacio de nombresJakarta. Java 25 (versión preliminar) se ejecuta de forma predeterminada en EE 11 y no admite EE 10.Java Enterprise Edition 8 (EE 8): Java EE 8 te permite usar las APIs de
javax.servlet.*, pero debes realizar pequeños cambios de configuración en tu archivoappengine-web.xml.
Actualiza a una versión de Java compatible para servicios agrupados en paquetes heredados
Compatibilidad con el entorno de ejecución de Java
Consulta la siguiente tabla para comprender qué versiones de Java son compatibles con tus versiones de servlet. Para obtener más detalles sobre las funciones de punto de entrada, la configuración de propiedades del sistema, la compatibilidad resultante con Jetty y las versiones de EE compatibles, consulta Funciones de punto de entrada.
| Enterprise Edition (EE) | Versión de Java | Servlet | Compatibilidad |
|---|---|---|---|
| EE7 | 11 | 2.5 o 3.1 | No hay asistencia de la comunidad para EE7. Java 11 llegó al fin de la asistencia. Te recomendamos que actualices tu app para usar la versión más reciente de Java. |
| EE7 | 17 | 2.5 o versiones posteriores | No hay asistencia de la comunidad para EE7. Te recomendamos que actualices tu app para usar EE 8 y versiones posteriores. |
| EE 8 | 17/21/25 (versión preliminar) | 2.5 y posteriores | Java EE 8 es retrocompatible con Java EE6 y versiones posteriores. Para obtener más información, consulta Actualiza Java en una versión compatible de Enterprise Edition (EE). |
| EE 10 | 17/21 | 6.0 (predeterminada, recomendada). Java 21 está configurado para ejecutar EE 10 de forma predeterminada. | Para usar Java EE 10, actualiza los servlets y las dependencias de tu aplicación para incluir el espacio de nombres Jakarta. Para obtener más información, consulta Actualiza Java en una versión compatible de Enterprise Edition (EE). No puedes usar Java 25 (vista previa) en EE10. |
| EE 11 | 25 | 6.1 (predeterminada, recomendada). Java 25 (versión preliminar) está configurado para ejecutar EE 11 de forma predeterminada. | Para usar Java EE 11, actualiza los servlets y las dependencias de tu aplicación para incluir el espacio de nombres Jakarta. Para obtener más información, consulta Actualiza Java en una versión compatible de Enterprise Edition (EE). |
Actualiza Java en una versión compatible de Enterprise Edition (EE)
Para usar Java 25 (versión preliminar) en Enterprise Edition 11 (EE 11) o Java 21 en Enterprise Edition 10 (EE 10), actualiza los servlets y las dependencias de tu aplicación en tus archivos de Maven y Gradle para incluir el espacio de nombres Jakarta:
Java 25 (versión preliminar, EE 11)
Para usar Java 25 (versión preliminar) en Enterprise Edition 11 (EE 11), sigue estos pasos:
Cambia el número de versión del archivo de configuración
web.xmlaversion=6.1. Por ejemplo:<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>Cambia el nombre de los servlets y las dependencias de tu aplicación de
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 { ......Actualiza las dependencias de terceros restantes de tu aplicación a artefactos de Java más recientes, según el espacio de nombres
Jakarta.Agrega la siguiente propiedad del sistema en tu archivo
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>Opcional: Java 25 incluye compatibilidad con subprocesos virtuales. Para habilitar los subprocesos virtuales, agrega la propiedad
appengine.use.virtualthreadsdentro de la etiquetasystem-propertiesen el archivoappengine-web.xml.
Java 21 (EE 10)
Para usar Java 21 en Enterprise Edition 10 (EE 10), sigue estos pasos:
Cambia el número de versión del archivo de configuración
web.xmlaversion=6.0. Por ejemplo:<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>Cambia el nombre de los servlets y las dependencias de tu aplicación de
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 { ......Actualiza las dependencias de terceros restantes de tu aplicación a artefactos de Java más recientes, según el espacio de nombres
Jakarta.Agrega la siguiente propiedad del sistema en tu archivo
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>Opcional: Java 21 incluye compatibilidad con subprocesos virtuales. Para habilitar los subprocesos virtuales, agrega la propiedad
appengine.use.virtualthreadsdentro de la etiquetasystem-propertiesen el archivoappengine-web.xml.
Java 17 y versiones posteriores (EE 8)
Usar las APIs de javax.servlet.* en Java EE 8 sin cambios importantes en la configuración de la aplicación EE 8 ofrece retrocompatibilidad con Java EE 6 y versiones posteriores.
Para ejecutar tus aplicaciones en Java EE 8, declara una etiqueta
system-properties nueva en tu archivo
appengine-web.xml
con la configuración app.engine.use.EE8 no predeterminada:
<?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>
Opcional: Java 21 y versiones posteriores incluyen compatibilidad con subprocesos virtuales. Para habilitar
los subprocesos virtuales, agrega la propiedad appengine.use.virtualthreads
dentro de la etiqueta system-properties. Ejemplo: <property name="appengine.use.virtualthreads" value="true"/>