Resolución de errores de implementación en AEM as a Cloud Service

Este artículo aborda los errores de implementación en Adobe Experience Manager (AEM) as a Cloud Service causados por las personalizaciones en el script de inicialización del repositorio. Al implementar una rama de características en la fase de desarrollo, estos errores pueden dificultar la implementación correcta y no son fácilmente visibles en los registros. El problema se corrige al analizar los registros de depuración.

Descripción description

Entorno

  • Producto: Adobe Experience Manager (AEM) as a Cloud Service - Sitios
  • Fase: desarrollo
  • Restricciones: Las modificaciones directas a través de la Consola Felix están restringidas.

Problema/Síntomas

  • La implementación de una rama de funciones falla debido a errores de inicialización del repositorio.

  • Los registros muestran mensajes como:

    code language-none
    Exception in a SlingRepositoryInitializer, SlingRepository service registration aborted
    javax.jcr.RepositoryException: Applying repoinit operation failed despite retry; set loglevel to DEBUG to see all exceptions.
    Last exception message from "Configuration PID 310, script[ 0] " was: CreatePath execution failed at cq(sling:Folder): javax.jcr.nodetype.ConstraintViolationException: org.apache.jackrabbit.oak.spi.state.ReadyOnlyBuilderException: This builder is read-only...
    
  • Los errores indican intentos de modificar nodos de solo lectura o partes inmutables del repositorio.

Resolución resolution

Para resolver el problema, siga estos pasos:

  1. Establezca el nivel de registro en DEBUG para las operaciones de repo-init a fin de obtener información detallada sobre las excepciones durante la inicialización del repositorio. Dado que el acceso directo a través de la consola Felix está restringido, utilice una configuración de registro personalizada dentro del proyecto.

  2. Cree un archivo de configuración OSGi en la carpeta /apps/<your-project>/config/ de su proyecto, como com.adobe.granite.logging.impl.LogManagerFactory.config.

    • Incluya las siguientes propiedades en este archivo:

      code language-none
      loggers=[ "org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory"]
      org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory.log.level=DEBUG
      
  3. Implemente la configuración actualizada a través de Cloud Manager y compruebe que los registros de depuración detallados para operaciones de repo-init sean visibles después de la implementación.

  4. Revise los registros de depuración para obtener contexto adicional sobre los errores durante la inicialización del repositorio, buscando indicaciones de modificaciones no autorizadas o intentos de alterar nodos de solo lectura.

  5. Asegúrese de que el script de repo-init no intente crear ni modificar nodos dentro de partes inmutables del repositorio (por ejemplo, rutas del sistema).

  6. Quite o ajuste los comandos de CreatePath dirigidos a nodos definidos como cq(sling:Folder) si residen en áreas de solo lectura. Si se deben agregar nuevos nodos o estructuras, empaquete estos cambios por separado utilizando paquetes de contenido implementados en rutas permitidas.

Los siguientes pasos le ayudarán a identificar y corregir los errores de implementación al tiempo que respetan las restricciones de ruta del sistema de AEM.

Lectura relacionada

Depuración de AEM as a Cloud Service e implementaciones

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