通过CMIS连接到Alfresco

H-H*_*H-H 4 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);
Run Code Online (Sandbox Code Playgroud)

但是,我无法找出存储库ID应该是什么以及如何指定Alfresco的URL.有人可以向我解释一下吗?谢谢.

sku*_*uro 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();
Run Code Online (Sandbox Code Playgroud)

CMIS规范:

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

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

对于Alfresco,存储库ID在每个实例的基础上是不同的,因此如果您从干净的数据库重新开始重新生成ID,那么如果它依赖于硬编码的repo ID就会破坏您的应用程序.

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