Los modelos Sling con jakarta.annotation.PostConstruct fallan en AEM 6.5 LTS

Los modelos Sling en AEM 6.5 LTS no se pueden inicializar cuando usan jakarta.annotation.PostConstruct, lo que impide que se ejecute la lógica posterior a la construcción e interrumpe el comportamiento del componente. Al actualizar los modelos para que utilicen javax.annotation.PostConstruct, se restaurará la inicialización adecuada y la funcionalidad de componente esperada.

Para resolver el problema, revierta Modelos Sling a javax.annotation.PostConstruct.

Descripción description

Entorno

  • Adobe Experience Manager (AEM) Managed Services
  • AEM 6.5 LTS con modelos Sling

Problema/Síntomas

  • Los métodos del modelo Sling @PostConstruct no se ejecutan después de cambiar de jakarta.annotation.PostConstruct.
  • Los componentes que dependen de la lógica posterior a la construcción no se pueden procesar ni comportar correctamente.
  • Los modelos se implementan correctamente, pero la lógica de inicialización no se ejecuta.

Causa principal

AEM 6.5 LTS no es totalmente compatible con los modelos Sling que usan el espacio de nombres jakarta.annotation. La implementación de modelos Sling solo reconoce javax.annotation.PostConstruct, por lo que los métodos jakarta.annotation.PostConstruct no se ejecutan durante la inicialización del modelo.

Resolución resolution

Pasos para resolver:

  1. Actualice todas las clases del modelo Sling para utilizar javax.annotation.PostConstruct en lugar de jakarta.annotation.PostConstruct.
  2. Quitar todas las jakarta.*importaciones relacionadas con @PostConstruct de todas las clases del modelo Sling.
  3. Revise las dependencias del proyecto (por ejemplo, pom.xml) y confirme que solo se utilizan javax dependencias para las anotaciones relevantes para los modelos Sling.
  4. Vuelva a generar el proyecto para asegurarse de que los cambios de dependencia e importación se aplican correctamente.
  5. Implemente el código actualizado y compruebe que el paquete que contiene los modelos Sling está en el estado Activo en /system/console/bundles.
  6. Compruebe que todas las clases de modelos Sling se enumeran en /system/console/status-slingmodels.
  7. Confirme que los métodos @PostConstruct  se han invocado correctamente y que los componentes se comportan según lo esperado.

Notas:

  • AEM 6.5 LTS no admite artefactos de Sling migrados al espacio de nombres jakarta.*, incluido jakarta-based @PostConstruct.
  • Este comportamiento se alinea con las implementaciones de referencia como el proyecto AEM WKND Sites, que sigue usando javax.annotation.PostConstruct en AEM 6.5 LTS.

Lectura relacionada

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f