ClassCastException al llamar a un servicio CQ

Problema

Ha configurado un servicio CQ personalizado situado en /classes/.../serviceclass. Si intenta acceder a este Servicio CQ desde un script JSP (por ServiceManager.getService(), obtiene un ClassCastException.

Solución

Para asegurarse de que su clase se carga desde el mismo cargador de clases, coloque su archivo de clase (incluyendo la jerarquía del directorio de paquetes) en un archivo jar. A continuación, cópielo en /system/bin.new/lib. El com.day.cq.bootstrap.BootClassLoader carga la clase. Tanto el administrador del servicio como el sistema JSP utilizan el com.day.cq.bootstrap.BootClassLoader.

Nota:

Asegúrese de que su clase no está en /classes/... o todavía en la caché de clases (/system/works/classes) de una compilación anterior en cqde. A continuación, reinicie.

Información adicional

ClassCastException se produce cuando el administrador del servicio y el sistema JSP no utilizan el mismo classloader. Por lo tanto, su clase no es la misma para el administrador de servicios y el sistema JSP.

 Adobe

Obtén ayuda de forma más rápida y sencilla

¿Nuevo usuario?

Adobe MAX 2024

Adobe MAX
La conferencia de creatividad

Del 14 al 16 de octubre en Miami Beach y en línea

Adobe MAX

La conferencia de creatividad

Del 14 al 16 de octubre en Miami Beach y en línea

Adobe MAX 2024

Adobe MAX
La conferencia de creatividad

Del 14 al 16 de octubre en Miami Beach y en línea

Adobe MAX

La conferencia de creatividad

Del 14 al 16 de octubre en Miami Beach y en línea