2012-03-03 59 views
4

我以Alfresco開始。我安裝了Alfresco 4社區版,並試圖使用OpenCMIS連接到它。我把這個代碼片段從OpenCMIS頁:用CMIS連接到Alfresco

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

不過,我無法找出什麼應該是庫ID以及如何指定露天的URL。有人可以向我解釋嗎?謝謝。

回答

12

TL; DR:

// 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化「「庫」,」服務 (getRepositories),以獲得一個在該端點可用的儲存庫列表

存儲庫ID是由CMIS存儲庫生成的不透明字符串,您通常會發現它,而不是先知道。另外,一個CMIS服務器可以託管多個存儲庫(儘管Alfresco暫時只支持一個)。

當涉及到Alfresco時,存儲庫ID在每個實例的基礎上是不同的,這樣如果您重新從乾淨的數據庫開始重新生成ID,如果它依賴於硬編碼的repo ID。

存儲庫ID發現是通過AtomPub綁定中的服務文檔和Web服務綁定中的cmisRepositoryEntryType實現的。

+0

感謝您的信息! :) – 2012-03-03 11:38:44

+0

如果使用的是Alfresco 3,請使用'http:// localhost:8080/alfresco/s/api/cmis'作爲'ATOMPUB_URL'。 – vegemite4me 2015-02-25 09:59:09