2012-03-03 274 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

相关问题