2016-08-30 2 views
0

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

EDIT
Я неправильно сформулировал вопрос, поэтому я объясню лучше.
Что я хотел бы сделать это, чтобы иметь возможность получить фактический repository root id (т.е. store_root в Alfresco, например) НЕroot folder id, так что я могу использовать, что против апи, чтобы получить это прямые дети, т.е. объекты на том же иерархическом уровне, что и корневая папка (Компания in alfresco)Как восстановить «резидентный корень» id/children из репозитория CMIS?

+0

язык ведьмы вы используете?!? –

+0

@YagamiLight Я работаю с Java. Мне действительно нужно получить nodeRef или объект «store_root» –

+0

вы хотите получить детей из любого репозитория?!? –

ответ

4

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

Чтобы понять, как получить корневую папку (которая является основной компанией), как получить файлы корневой папки, см. here.

+0

AAh, вы правы. Я предположил, что все остальные объекты, находящиеся на том же уровне, что и дом компании, являются корнями репозитория, тогда как мне действительно нужно иметь возможность получить объект store_Root. –

+0

Я обновил свой ответ с этой информацией. –

1

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

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(); 

надежду, что помогло вам

+0

Я отредактировал вопрос для большей ясности. Я уже могу получить идентификатор корневой папки, но не идентификатор корня репо, который мне нужен. –

+0

любые отзывы об этом?!? –

+0

Казалось бы, невозможно получить сам объект store_root –

Смежные вопросы