Corrección de jcr:mixinTypes ValueFormatException en las versiones de AEM

Las compilaciones de canalización en Adobe Experience Manager (AEM) as a Cloud Service fallan debido a un paquete org.apache.sling.jcr.repoinit obsoleto. Este problema se produce cuando un script repoInit asigna incorrectamente un valor único a una propiedad JCR de varios valores, lo que desencadena una excepción ValueFormatException. Este artículo explica la causa raíz y proporciona los pasos para resolver el problema actualizando el paquete y corrigiendo la secuencia de comandos.

Descripción description

Entorno

  • Adobe Experience Manager (AEM) as a Cloud Service - Sitios
  • La versión actual del paquete org.apache.sling.jcr.repoinit es 1.1.38. Se requiere la versión 1.154 o posterior.
  • Los errores de canalización se producen intermitentemente durante las implementaciones. Las implementaciones del entorno de desarrollo suelen realizarse correctamente.

Problema/Síntomas

La generación de la canalización falla con el siguiente error:

Excepción en un SlingRepositoryInitializer, el registro del servicio SlingRepository anuló javax.jcr.RepositoryException: no se pudo aplicar la operación repoinit a pesar del reintento; establezca el nivel de registro en DEPURAR para ver todas las excepciones. El último mensaje de excepción de "PID de configuración 313, script[ 0]" fue: No se pueden establecer propiedades en la ruta [ /conf/somepath] : javax.jcr.ValueFormatException: No se puede asignar un solo valor a una propiedad de varios valores: jcr:mixinTypes = mix:lockable

Causa raíz

El script repoInit intenta asignar jcr:mixinTypes como un solo valor en lugar de como una matriz de varios valores. Esto causa una ValueFormatException no controlada, lo que provoca un error en la ejecución de la canalización.

Resolución resolution

Para solucionar este problema:

  1. Modifique el script repoInit para que jcr:mixinTypes se escriba como una matriz de varios valores o quite la línea si los mixins ya están presentes.
  2. Actualice el paquete org.apache.sling.jcr.repoinit a la versión 1.154 o posterior, que incluye una corrección para este problema. Esta actualización podría incluirse en futuras versiones de foundation; compruebe la disponibilidad de las programaciones de versiones.
  3. Hasta que el paquete actualizado esté disponible, asegúrese de que los scripts repoInit utilicen matrices para propiedades de varios valores.

Al implementar estos pasos, los errores de generación de canalización causados por errores de inicialización del repositorio se pueden mitigar de manera eficaz.

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