Как получить 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();
надеюсь, что это помогло тебе