CommerceService es indefinido o nulo cuando Geometrixx no está instalado

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 
Logotipo de Adobe

Inicia sesión en tu cuenta