2016-08-30 94 views
0

我正在使用openCMIS庫來對付兼容cmis 1.0的服務器,並且我注意到無論何時我在服務器上調用getRepositories(一個alfresco v3.2 & v5.0服務器),我只會收到一個帶有一個存儲庫的列表,而不是我期待着,即服務器上的根目錄。如何使用opencmis庫檢索存儲庫根目錄?

編輯
我不恰當地措詞這個問題,所以我會解釋得更好。
我想什麼做的是能夠得到實際repository root id(即store_root在露天的情況下)root folder id,這樣我可以利用,對API檢索它的直接孩子,即與根文件夾位於相同層級的對象(公司主頁在戶外)如何從CMIS存儲庫中檢索'repository root'id/children?

+0

你使用的女巫語言?!? –

+0

@YagamiLight我正在使用Java。我實際上需要獲取nodeRef或'store_root'對象 –

+0

是否要獲取任何存儲庫的子項?!? –

回答

4

Alfresco只有一個存儲庫,因此您所看到的是正確的。

要了解如何獲取根文件夾(即Company Home),那麼如何獲取根文件夾的子項,請參見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

爲了更好的清晰度,我編輯了這個問題。我已經可以獲得根文件夾ID,但不是我需要的repo root id。 –

+0

有關它的任何反饋?!? –

+0

似乎無法獲得store_root對象本身 –

相關問題