2012-03-03 3 views
4

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

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

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

ответ

12

ТЛ; др:

// 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 spec:

приложение должно использовать CMIS «" Get Хранилища»" сервис (getRepositories) для получения список доступных репозиториев в этой конечной точке

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

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

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

+0

Спасибо за информацию! :) –

+0

Если вы используете Alfresco 3, используйте 'http: // localhost: 8080/alfresco/s/api/cmis' как' ATOMPUB_URL'. – vegemite4me