【问题标题】:"Unkown repository" error when trying to getFolderRoot from Alfresco 5.0 repository with CMIS尝试使用 CMIS 从 Alfresco 5.0 存储库获取文件夹根时出现“未知存储库”错误
【发布时间】:2020-05-10 04:05:48
【问题描述】:

我有一个新的 alfresco 社区版本 5.0.a 安装。我正在尝试使用 java 连接器服务来上传/下载在 4.2.c 露天安装中正常工作的文件。

此连接器应用程序使用 chemistry-opencmis-client-api-0.8.0。

使用连接器上传文件时,我打开连接,获取存储库,也可以正确获取存储库根文件夹 id:

SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
Map<String, String> parameter = new HashMap<String, String>();

parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
parameter.put(SessionParameter.ATOMPUB_URL , url );
parameter.put(SessionParameter.USER        , user);
parameter.put(SessionParameter.PASSWORD    , pass);

if (repository_id != null)
    parameter.put(SessionParameter.REPOSITORY_ID, repository_id);

List<Repository> repos = sessionFactory.getRepositories(parameter);     
Repository repo = repos.get(0);
log.debug("REPO ID: " + repo.getId());
log.debug("REPO ROOT FOLDER ID: " + repo.getRootFolderId());        

然后我创建会话:

Session session = repo.createSession();

但是当我想获取根文件夹对象时:

Folder folder = session.getRootFolder();

我收到“CmisObjectNotFoundException:未知存储库”错误:

org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException: 未知仓库!在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getObjectInternal(AbstractAtomPubService.java:768) 在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.getObject(ObjectServiceImpl.java:516) 在 org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:403) 在 org.apache.chemistry.opencmis.client.runtime.SessionImpl.getObject(SessionImpl.java:377) 在 org.apache.chemistry.opencmis.client.runtime.SessionImpl.getRootFolder(SessionImpl.java:482) 在 org.apache.chemistry.opencmis.client.runtime.SessionImpl.getRootFolder(SessionImpl.java:476) 在 com.test.ecm.EcmConnector.open(EcmConnector.java:62) 在 com.test.ecm.WebServiceController.post(WebServiceController.java:99) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) 在 org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:751) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:844) 在 weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 在 weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) 在 weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 在 weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341) 在 weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3363) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) 在 weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564) 在 weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:295) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:254)

此错误的原因可能是什么?

【问题讨论】:

  • com.test.ecm.EcmConnector 类看起来很可疑 - 你还添加了哪些其他 jar?有演示的吗?任何自定义 cmis 的?
  • 看看这个链接对你有没有帮助:stackoverflow.com/questions/41580963/…
  • @Gagravarr WebServiceController 和 EcmConnector 是我的项目类。没有额外的 cmis jars。
  • @SanketMehta 谢谢,我为 alfresco 5 使用了正确的网址:localhost:8080/alfresco/cmisatom

标签: java alfresco cmis


【解决方案1】:

您使用的服务 URL 不正确。根据documentation,CMIS 1.0 和 ATOM 绑定的 URL 是:

https://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    相关资源
    最近更新 更多