How to get assets from DAM in a java class?

Avatar

Avatar

frankml_ve

Avatar

frankml_ve

frankml_ve

31-10-2019

Hello.

I'm trying to make a java class that use the script to get image from the DAM posted here Adobe Experience Manager Help | Creating an Adobe Experience Manager DAM Image component

but I'm having troubles with the Sling variable, because on th JSP file, the sling variable is declared in  the global.jsp file.

<%@include file="/libs/foundation/global.jsp"%>

SlingRepository slingRep = sling.getService(SlingRepository.class);

Session session = slingRep.loginAdministrative(null);

QueryBuilder qb ;

Map<String, String> map = new HashMap<String,String>();

map.put("type", "dam:Asset");

map.put("property", "jcr:content/metadata/dc:format");

map.put("property.value", "image/jpeg");

qb=resource.getResourceResolver().adaptTo(QueryBuilder.class);

Query query = qb.createQuery(PredicateGroup.create(map), session);

SearchResult sr= query.getResult();

String assetPath=null;

// iterating over the results

  for (Hit hit : sr.getHits()) {

      String path = hit.getPath();

      Resource rs = resourceResolver.getResource(path);

      Asset asset = rs.adaptTo(Asset.class);    

     assetPath = asset.getPath();

In the code above the sling variable is on the line 01.

When I paste this code on my java class, I get an error because Eclipse IDE can't reach the Sling API library.

How can I initialize this variable to make my code work?

View Entire Topic

Avatar

Avatar

frankml_ve

Avatar

frankml_ve

frankml_ve

12-11-2019

hey  Jörg!

Actually now my team and I we are having troubles with this component, when we publish it to our local publish instance it crash!!!!

In the Author instance works perfectly even the JS file and Less. But when we put this on Publish trows this error.

org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: Compilation errors in org/apache/sling/scripting/sightly/apps/wknd/components/content/galeria/galeria_html.java: Line 42, column 1899 : com.adobe.aem.guides.wknd.core.models.ClassificationAssets cannot be resolved to a type

Cannot serve request to /content/wknd/asdasda.html on this server


ApacheSling/2.6 (jetty/9.4.15.v20190215, OpenJDK 64-Bit Server VM 11.0.4, Linux 4.15.0-66-generic amd64)
Do you know what are we missing on publish instance config??