CommerceService è indefinito o nullo quando Geometrixx non è installato

Problema

Quando cerchi di adattare il risolutore di risorse ad un oggetto CommerceService, per esempio al codice sottostante, restituisce il messaggio nullo o "non definito":

var commerceService = resource. getResourceResolver(). adaptTo( com. adobe. cq. commerce. api.CommerceService); 

In questo caso, il servizio class com.adobe.cq.commerce.api.CommerceService è disponibile nel Class Loader di OSGi. Per confermare, fai riferimento alla console OSGi utilizzando lo strumento http://aem-host:port/system/console/depfinder. 

 

Causa

Questo problema è di progettazione.

Risoluzione

Implementa le tue versioni dei servizi forniti nel pacchetto cq-geometrixx-commons-core fornito sotto /apps/geometrixx-commons, quando implementi un'applicazione utilizzando gli APl di AEM Commerce.

Quelli di Geometrixx sono solo campioni e non è consigliabile installare Geometrixx in produzione, per motivi di sicurezza. Se non implementi la tua versione di CommerceServiceFactory, incontrerai il problema descritto sopra se Geometrixx non è installato. 

Vedi il codice sorgente campione che viene inviato con AEM sotto questi percorsi:

/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 
Logo Adobe

Accedi al tuo account