如何从 CMIS 存储库中检索 'repository root' id/children?
How to retrieve 'repository root' id/children from CMIS repository?
我在 cmis 1.0 兼容服务器上使用 openCMIS 库,我注意到每当我在服务器(露天 v3.2 和 v5.0 服务器)上调用 getRepositories 时,我只收到一个列表一个存储库,而不是我所期望的,即服务器上的根列表。如何使用 opencmis 库检索存储库根列表?
编辑
我对问题的措辞不当,所以我会更好地解释。
我想做的是能够获得实际的 repository root id
(例如,在露天的 store_root)NOT root folder id
,这样我就可以利用它来对抗 api 来检索它的直接子项,即与根文件夹处于同一层级的对象(公司主页 在露天)
Alfresco 只有一个存储库,所以您看到的是正确的。
要了解如何获取根文件夹(即 Company Home),以及如何获取根文件夹的子文件夹,请参阅 here。
对我来说工作正常测试它:
首先,您必须创建一个会话并将其与此连接:
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();
希望对你有帮助
我在 cmis 1.0 兼容服务器上使用 openCMIS 库,我注意到每当我在服务器(露天 v3.2 和 v5.0 服务器)上调用 getRepositories 时,我只收到一个列表一个存储库,而不是我所期望的,即服务器上的根列表。如何使用 opencmis 库检索存储库根列表?
编辑
我对问题的措辞不当,所以我会更好地解释。
我想做的是能够获得实际的 repository root id
(例如,在露天的 store_root)NOT root folder id
,这样我就可以利用它来对抗 api 来检索它的直接子项,即与根文件夹处于同一层级的对象(公司主页 在露天)
Alfresco 只有一个存储库,所以您看到的是正确的。
要了解如何获取根文件夹(即 Company Home),以及如何获取根文件夹的子文件夹,请参阅 here。
对我来说工作正常测试它: 首先,您必须创建一个会话并将其与此连接:
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();
希望对你有帮助