Как получить id/children "корня хранилища" из хранилища CMIS?

Я использую библиотеку openCMIS против сервера, совместимого с cmis 1.0, и заметил, что всякий раз, когда я вызываю getRepositories на сервере (сервер alfresco v3.2 и v5.0), я получаю список только с одним хранилищем, в отличие от того, что я ожидал список корней на сервере. Как мне получить список корней репозитория, используя библиотеку opencmis?

РЕДАКТИРОВАТЬ
Я неправильно сформулировал вопрос, поэтому объясню лучше.
То, что я хотел бы сделать, это иметь возможность получить фактическое repository root id (т.е. store_root в alfresco, например) НЕ root folder id таким образом, что я могу использовать это для API, чтобы получить его прямые дочерние элементы, т.е. объекты на том же уровне иерархии, что и корневая папка (Company Home in alfresco)

2 ответа

Решение

У Alfresco есть только один репозиторий, поэтому то, что вы видите, верно.

Чтобы понять, как получить корневую папку (которая является домашней страницей компании), а затем узнать, как получить дочернюю корневую папку, см. Здесь.

Хорошо работал для меня, проверьте это: сначала вы должны создать сеанс и связать его с этим:

private static Session getSession(String serverUrl, String username, String password) {
    SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
    Map<String, String> params = new HashMap<>();
    params.put(SessionParameter.USER, username);
    params.put(SessionParameter.PASSWORD, password);
    params.put(SessionParameter.ATOMPUB_URL, serverUrl);
    params.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
    List<Repository> repos = sessionFactory.getRepositories(params);
    if (repos.isEmpty()) {
        throw new RuntimeException("Server has no repositories!");
    }
    return repos.get(0).createSession();
} 

после этого используйте только это

Folder folder = session.getRootFolder();

надеюсь, что это помогло тебе

Другие вопросы по тегам