Problema
Cuando se intenta adaptar el resolvedor de recursos a un objeto CommerceService, por ejemplo en el código de abajo, entonces devuelve nulo o "indefinido":
var commerceService = resource. getResourceResolver(). adaptTo( com. adobe. cq. commerce. api.CommerceService);
En este caso, la clase com.adobe.cq.commerce.api.CommerceService está disponible en el cargador de clase OSGi. Para confirmar esto, consulte la consola OSGi usando la herramienta http://aem-host:port/system/console/depfinder.
Causa
Este problema es de diseño.
Resolución
Implemente sus propias versiones de los servicios proporcionados en el paquete cq-geometrixx-commons-core proporcionado bajo /apps/geometrixx-commons, cuando implemente una aplicación utilizando las API de AEM Commerce.
Las de Geometrixx son solo muestras, por lo que no se recomienda instalar Geometrixx en producción por razones de seguridad. Si no implementa su propia versión de CommerceServiceFactory, se encontrará con el problema descrito anteriormente si Geometrixx no está instalado.
Vea el código fuente de ejemplo que se envía con AEM bajo estas rutas:
/apps/geometrixx- commons/src/core/src/main/java/info/geometrixx/commons/impl/GeoCommerceServicelmpl.java /apps/geometrixx- commons/src/core/src/main/java/info/geometrixx/commons/impl/GeoCommerceServiceFactory.java /apps/geometrixx- commons/src/core/src/main/java/info/geometrixx/commons/impl/GeoCommerceSessionlmpl.java /apps/geometrixx-commons/src/core/src/main/java/info/geometrixx/commons/impl/productrelationships
Inicia sesión en tu cuenta