解释起来很复杂,我想最好的办法是从 SVN中检查inMemoryServer 。您引用的文档是客户端 API 的示例,其中会话接口包含最重要的 CMIS 操作。
SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameter = new HashMap<String, String>();
..........
parameter.put(SessionParameter.LOCAL_FACTORY, "my.local.factory");
..........
Session session = factory.createSession(parameter);
拿到源码后,看一下LOCAL_FACTORY
参数值“InMemoryServiceFactoryImpl”。这个工厂有一个service()
返回的方法InMemoryService
,它保存对所有类型的 CMIS 服务的引用,它作为某种外观服务,以便通过客户端 API(会话方式)简化使用。
另一种方法是使用客户端绑定 API,您可以在其中直接访问具体的 CMIS 服务。
CmisBindingFactory factory = CmisBindingFactory.newInstance();
CmisBinding binding = factory.createCmisLocalBinding(parameters); // LocalBinding !!
fFactory = binding.getObjectFactory();
fRepSvc = binding.getRepositoryService();
fObjSvc = binding.getObjectService();
fNavSvc = binding.getNavigationService();
fVerSvc = binding.getVersioningService();
fMultiSvc = binding.getMultiFilingService();
fDiscSvc = binding.getDiscoveryService();
等等等等,看看测试,它实际上涵盖了大多数用例。