【发布时间】: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。