問題点

次の例のように、リソースを CommerceService オブジェクトに適合させようとすると、例えば次のコードのように null または「undefined」が返されます。

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

この場合、クラス com.adobe.cq.commerce.api.CommerceService は OSGi Class Loader で使用できます。これを検証するには、http://aem-host:port/system/console/depfinder のツールを使用して OSGi コンソールを参照してください。 

 

原因

この問題はデザイン時に発生します。

解決策

AEM Commerce APls を使用してアプリケーションを実装するときは、/apps/geometrixx-commons で提供される cq-geometrixx-commons-core バンドルで提供される独自のバージョンを実装します。

Geometrixx のものは単なるサンプルであり、セキュリティ上の理由から Geometrixx を製品にインストールすることはお勧めしません。CommerceServiceFactory の独自のバージョンを実装しない場合は、Geometrixx がインストールされていないと、上記の問題が生じます。 

次のパスの AEM に付属のサンプルソースコードを参照してください。

/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 

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー