Я видел в документации Adobe API службу QueryBuilder, которую можно вызывать по URL-адресам для многих параметров запроса, это возвращает ответы на основе JSON. Очень хорошо. Я хочу использовать это в java API. Я нашел несколько примеров и попробовал в eclipse, но кое-что я не знаю, как получить «слинг» службы, как в приведенном ниже коде: ИЛИ, другими словами, как создать объект Java QueryBuilder.
Любой конкретный JAR, который мне нужен, или мне нужно установить Apache SLING на свой компьютер, я не уверен, что кто-то, кто может поделиться этим, будет полезен, поскольку я новичок в CQ5 и понятия не имею.
Пример кода выглядит следующим образом:
Repository repository = JcrUtils.getRepository(SERVER);
SimpleCredentials credentials = new SimpleCredentials(USERNAME, PASSWORD.toCharArray());
Session session = repository.login(credentials);
System.out.println("got session: " + session);
/*HERE SLING IS THE PROBLEM HOW TO GET SLING */
QueryBuilder qbuilder = sling.getService(QueryBuilder.class);
String fulltextSearchTerm = "Geometrixx";
// create query description as hash map (simplest way, same as form
// post)
Map<String, String> map = new HashMap<String, String>();
// create query description as hash map (simplest way, same as form
// post)
map.put("path", "/content");
map.put("type", "cq:Page");
map.put("group.p.or", "true"); // combine this group with OR
map.put("group.1_fulltext", fulltextSearchTerm);
map.put("group.1_fulltext.relPath", "jcr:content");
map.put("group.2_fulltext", fulltextSearchTerm);
map.put("group.2_fulltext.relPath", "jcr:content/@cq:tags");
// can be done in map or with Query methods
map.put("p.offset", "0"); // same as query.setStart(0) below
map.put("p.limit", "20"); // same as query.setHitsPerPage(20) below
Query query = qbuilder.createQuery(PredicateGroup.create(map), session);
query.setStart(0);
query.setHitsPerPage(20);
SearchResult result = query.getResult();