通过CMIS连接到Alfresco

时间:2012-03-03 10:24:15

标签: java alfresco cmis

我从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。有人可以向我解释一下吗?谢谢。

1 个答案:

答案 0 :(得分: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就会破坏你的应用程序

通过AtomPub绑定中的服务文档和Web服务绑定中的cmisRepositoryEntryType,可以实现存储库ID发现。