Ошибка запроса CMIS

Я хочу знать все имена папок в каталоге «Домашняя страница компании» в Alfresco, но получаю сообщение об ошибке.

Код -

ItemIterable<QueryResult> results = session.query("SELECT * FROM cmis:folder where IN_TREE('/Company Home')", false);
try {
    for (QueryResult result : results) {
        folderId = result.getPropertyValueById(PropertyIds.OBJECT_ID);
        Folder folder = (Folder) session.getObject(folderId);
        System.out.println("Folder Name " + folder.getName());
    }
} catch(Exception e) {
    e.printStackTrace();
}

Ошибка -

org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: 00270668 Request failed 500 /solr/alfresco/cmis?wt=json&amp;fl=DBID%2Cscore&amp;rows=100&amp;df=TEXT&amp;start=0&amp;locale=en_US&amp;fq=%7B%21afts%7DAUTHORITY_FILTER_FROM_JSON&amp;fq=%7B%21afts%7DTENANT_FILTER_FROM_JSON
    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:452)
    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:570)
    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.DiscoveryServiceImpl.query(DiscoveryServiceImpl.java:142)
    at org.apache.chemistry.opencmis.client.runtime.SessionImpl$3.fetchPage(SessionImpl.java:567)
    at org.apache.chemistry.opencmis.client.runtime.util.AbstractIterator.getCurrentPage(AbstractIterator.java:132)
    at org.apache.chemistry.opencmis.client.runtime.util.CollectionIterator.hasNext(CollectionIterator.java:48)
    at main.java.org.apache.chemistry.opencmis.doc.QueryTest.folderName(QueryTest.java:180)

person Sam    schedule 28.01.2013    source источник


Ответы (2)


IN_TREE принимает идентификатор объекта, а не путь к объекту. Если вы укажете идентификатор папки «Домашняя компания», этот запрос должен работать.

person Florian Müller    schedule 28.01.2013
comment
Флориан, не могли бы вы сообщить мне, где я могу получить информацию о синтаксисе для запроса CMIS. Я не получил много информации на сайте Apache. - person Sam; 29.01.2013
comment
Глава о запросах спецификации CMIS 1.1 находится здесь: docs.oasis-open.org/cmis/CMIS/v1.1/cs01/ - person Florian Müller; 29.01.2013

Домашняя страница компании — это корневая папка, я предлагаю вам использовать что-то вроде следующего:

    Session session = createSession();

    Folder rootFolder = session.getRootFolder();

    ItemIterable<CmisObject> children = rootFolder.getChildren();

    for (CmisObject child : children) {

        System.out.println(child.getName());

    }
person billerby    schedule 28.01.2013