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.