Problemas de obsolescencia de Java 8 y Java 11 durante la migración a Java 21 en AEMaaCS

Adobe Experience Manager (AEM) as a Cloud Service ya no admite Java 8 o Java 11 en tiempo de ejecución y requiere la migración a Java 21. Este problema se produce cuando las versiones de Java en tiempo de compilación, las versiones de Java en tiempo de ejecución, las dependencias de terceros o las escalas de tiempo de migración crean problemas de compatibilidad e incertidumbre sobre las acciones requeridas. Para resolver el problema, compruebe el tiempo de ejecución, valide la compatibilidad y actualice las compilaciones.

Descripción description

Entorno

Adobe Experience Manager as a Cloud Service (AEMaaCS)

Problema/Síntomas

  • Los avisos de compilación de Cloud Manager indican el uso de API de Java en desuso.
  • El entorno ejecuta Java 21 en tiempo de ejecución mientras que la compilación sigue utilizando Java 11.
  • Los equipos no están seguros de si las compilaciones de Java 11 seguirán siendo compatibles tras el despliegue de tiempo de ejecución de Java 21.
  • Las notificaciones del Centro de acciones hacen referencia a los requisitos de migración o desaprobación de Java.
  • Las versiones de Java en tiempo de ejecución y en tiempo de compilación parecen incoherentes entre entornos.

Causa principal

El problema se produce porque AEM as a Cloud Service actualiza los entornos de tiempo de ejecución a Java 21, mientras que los proyectos de los clientes pueden seguir utilizando Java 11 para los procesos de compilación. Adobe administra Java en tiempo de ejecución, mientras que Java en tiempo de compilación se controla mediante la configuración del proyecto. Si no se entiende esta separación, junto con las API obsoletas y las incompatibilidades de dependencias, se producen problemas de migración y problemas de validación de la compilación.

Resolución resolution

Siga estos pasos para validar el uso del tiempo de ejecución de Java y preparar la aplicación para la compatibilidad con Java 21:

  1. Compruebe la versión de Java en tiempo de ejecución abriendo Developer Console desde Cloud Manager y revisando la versión de Java registrada.
  2. Registre la versión Java en tiempo de ejecución a través de un componente OSGi personalizado registrando el valor de System.getProperty("java.version") cuando la versión en tiempo de ejecución no sea visible en Developer Console.
  3. Revise el archivo .cloudmanager/java-version y determine si el proyecto se compila con Java 11, 17 o 21.
  4. Valide la compatibilidad con Java 21 asegurándose de que el entorno esté en el 17098 de la versión de AEM o posterior, ejecutando SDK local con Java 21, implementando la aplicación localmente y comprobando que no se producen problemas de carga de clase o dependencia.
  5. Cree una rama de desarrollo que establezca .cloudmanager/java-version en 21 y ejecute una canalización de desarrollo para validar el comportamiento de la aplicación en Java 21.
  6. Revise el uso de API obsoletas cuando aparezcan notificaciones del Centro de acciones y actualice el código que hace referencia a paquetes obsoletos o eliminados, como las API de Sling, Felix o Jetty eliminadas.
  7. Actualice la versión de compilación a Java 21 creando o modificando el archivo .cloudmanager/java-version con 21 y ejecutando una canalización que no sea de producción una vez que la validación de compatibilidad se realice correctamente.
  8. Revise el correo electrónico de notificación de migración a Java 21 y actualice las bibliotecas o dependencias no admitidas identificadas en el análisis de dependencias. Por ejemplo, reemplace o actualice versiones no compatibles de bibliotecas como Groovy o Logback cuando se identifiquen.
  9. Valide la resolución confirmando que el motor en tiempo de ejecución informa de Java 21, que las compilaciones de Cloud Manager se han realizado correctamente, que los avisos de obsolescencia han dejado de aparecer y que las pruebas funcionales se han aprobado correctamente.

Cuándo escalar

  • Developer Console permanece inaccesible después de validar los permisos.
  • La aplicación sigue mostrando incompatibilidades de dependencias después de la validación de Java 21.
  • Las compilaciones de Cloud Manager fallan después de actualizar la versión de compilación a Java 21.
  • Las dependencias no admitidas siguen sin resolverse después del análisis de migración y la corrección.

Lectura relacionada

recommendation-more-help
experience-cloud-kcs-help-kbarticles