我使用openCMIS库对cmis 1.0兼容的服务器,我注意到,每当我调用服务器上的getrepository (alfresco v3.2 &v5.0服务器)我只收到一个存储库的列表,而不是我所期望的,即服务器上的根列表。如何使用opencmis库检索存储库根列表?
编辑
我把问题提得不恰当,所以我会解释得更好。我想做的是能够得到实际的 repository root id
(即。NOT root folder id
,这样我就可以利用api来检索它的直接子对象,即与根文件夹(Company Home in alfresco)
Alfresco只有一个存储库,所以您看到的是正确的。
要了解如何获取根文件夹(即Company Home),然后如何获取根文件夹的子文件夹,请参见这里。
对我来说很好,测试一下:首先,你必须创建一个会话,并连接它:
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();
希望对你有帮助