2016-08-30 21 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对象本身 –

相关问题