我尝试通过AEM中的Junit测试来测试一些大坝资产。
首先,我将现有资产复制为资源文件中的JSON。接下来,我使用ContentLoader将JSON文件写入模拟存储库。
final ContentLoader contentLoader = new ContentLoader(this.getResourceResolver());
contentLoader.json("content/assets/testAsset.json", "/content/assets/testAsset");
然后,我使用ResourceResolver在目标路径中解决资源。
Resource assetRecource = resourceResolver.resolve("/content/assets/testAsset");
到目前为止一切都很好。当我尝试使AssetRecource适应资产时。类是结果null。
Asset asset = assetRecource.adaptTo(Asset.class); // is null
我认为这是因为缺失的演绎。
有人知道如何解决这个问题吗?也许使用ContentLoader#binaryResource((?
检查资源的资源型是 dam:asset 。
Resource assetRecource = resourceResolver.resolve("/content/assets/testAsset");
DamUtil.isAsset(assetRecource); // This would be true if the asset is dam:Asset
assetRecource.getResourceType(); // This would return the resourceType of the resource.
仅当资源不适合资产类别时,Afaptto为null的可能原因。
弃用:
- https://docs.adobe.com/content/docs/en/cq/5-6-1/javadoc/com/com/day/cq/cq/dam/api/asset.html
- http://sling.apache.org/apidocs/sling5/org/apache/sling/sling/api/adapter/adaptable/adaptable.html#adaptto(java.lang.class(
您需要添加下面的依赖项来测试大坝的评估:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-imaging -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-imaging</artifactId>
<version>1.0-R1534292</version>
</dependency>