Подключение к Alfresco с помощью CMIS

Я начинаю с Alfresco. Я установил версию Alfresco 4 Community и пытаюсь подключиться к ней с помощью OpenCMIS. Я взял этот фрагмент кода со страницы OpenCMIS:

    SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
    Map<String, String> parameter = new HashMap<String, String>();
    parameter.put(SessionParameter.USER, "admin");
    parameter.put(SessionParameter.PASSWORD, "admin");
    parameter.put(SessionParameter.ATOMPUB_URL,
            "http://repo.opencmis.org/inmemory/atom/");
    parameter.put(SessionParameter.BINDING_TYPE,
            BindingType.ATOMPUB.value());
    parameter.put(SessionParameter.REPOSITORY_ID,
              "");

    Session s = sessionFactory.createSession(parameter);

Однако я не смог выяснить, каким должен быть идентификатор репозитория и как указать URL-адрес Alfresco. Может ли кто-нибудь объяснить это мне? Спасибо.


person H-H    schedule 03.03.2012    source источник


Ответы (1)


тл;др:

// User credentials.
parameters.put(SessionParameter.USER, "admin");
parameters.put(SessionParameter.PASSWORD, "admin");

// Connection settings.
parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
parameters.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/service/cmis"); // URL to your CMIS server.
parameters.put(SessionParameter.AUTH_HTTP_BASIC, "true" );
parameters.put(SessionParameter.COOKIES, "true" );

// Create session.
// Alfresco only provides one repository.
Repository repository = sessionFactory.getRepositories(parameters).get(0);
Session session = repository.createSession();

Из спецификация CMIS:

Приложение ДОЛЖНО использовать службу CMIS «Получить репозитории» (getRepositories) для получения списка репозиториев, доступных в этой конечной точке.

Идентификаторы репозитория — это непрозрачные строки, сгенерированные репозиторием CMIS, которые вы обычно обнаруживаете, а не знаете заранее. Кроме того, на одном сервере CMIS может размещаться несколько репозиториев (хотя Alfresco пока поддерживает только один).

Когда дело доходит до Alfresco, идентификатор репозитория отличается для каждого экземпляра, поэтому, если вы начнете заново с чистой базы данных, этот идентификатор будет сгенерирован заново, что нарушит работу вашего приложения, если оно полагалось на жестко запрограммированный идентификатор репо.

Обнаружение идентификатора репозитория стало возможным благодаря служебному документу в привязке AtomPub и через cmisRepositoryEntryType в привязке веб-служб.

person skuro    schedule 03.03.2012
comment
При использовании Alfresco 3 используйте http://localhost:8080/alfresco/s/api/cmis вместо ATOMPUB_URL. - person vegemite4me; 25.02.2015