4

我从Alfresco开始。我安装了 Alfresco 4 社区版,并尝试使用 OpenCMIS 连接到它。我从 OpenCMIS 页面获取了这段代码:

    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 应该是什么以及如何指定 Alfresco 的 URL。有人可以向我解释吗?谢谢你。

4

1 回答 1

13

tl;博士:

// 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 规范

应用程序必须使用 CMIS“获取存储库”服务 (getRepositories) 来获取在该端点可用的存储库列表

存储库 ID 是由 CMIS 存储库生成的不透明字符串,您通常会发现而不是预先知道。此外,单个 CMIS 服务器可以托管多个存储库(尽管 Alfresco 暂时只支持一个)。

对于 Alfresco,每个实例的存储库 ID 都不同,因此,如果您从一个干净的数据库重新开始,该 ID 将重新生成,如果它依赖于硬编码的存储库 ID,则会破坏您的应用程序。

cmisRepositoryEntryTypeAtomPub 绑定中的服务文档和Web 服务绑定中的a 使存储库 ID 发现成为可能。

于 2012-03-03T10:44:00.887 回答