当前位置: 首页 > 知识库问答 >
问题:

Cmis方法GetAllVersions异常:CMISNotSupportedException:此对象的存储库不支持操作

申屠健
2023-03-14

我当然对此感到绝望,我希望有人知道我的CMIS服务器实现中缺少了什么,或者服务器端出了什么问题。

<dependency>
      <groupId>org.apache.chemistry.opencmis</groupId>
      <artifactId>chemistry-opencmis-server-support</artifactId>
      <version>1.1.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.chemistry.opencmis</groupId>
      <artifactId>chemistry-opencmis-server-bindings</artifactId>
      <version>1.1.0</version>
      <exclusions>
        <exclusion> <!-- Due to GWT compiler error -->
          <groupId>asm</groupId>
          <artifactId>asm</artifactId>
        </exclusion>
      </exclusions>
 </dependency>

当我试图从客户机调用getAllVersions方法(我已经在服务器端实现了这个方法)时,所有这些似乎都不起作用,得到了这个异常:cmisNotsupportedException:这个对象的存储库不支持操作!

我用下面的代码对它进行了测试,目标是一个现有的文档:

Session session = getSession();

Document doc = (Document) session.getObject("dddfd49f-ab13-435d-b65c-7e18d3bfbed3");


doc.getAllVersions();

获取提到的异常。关于DocumentTypeDefinitionImpl,我将setIsVersionable设置为true:

CMIS工作台:https://i.ibb.co/zspclrn/image.png

@Override
    public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
            Boolean includeAllowableActions, ExtensionsData extension) {
        List<ObjectData> result = new ArrayList<ObjectData>();

        // find the link
        String link = loadLink(repositoryId, objectId, Constants.REL_VERSIONHISTORY, Constants.MEDIATYPE_FEED);

        if (link == null) {
            throwLinkException(repositoryId, objectId, Constants.REL_VERSIONHISTORY, Constants.MEDIATYPE_FEED);
        }

方法loadLink返回null,因此它启动所提到的异常,因为他没有找到所提到的链接。

即使我通过浏览器Chrome调用链接http://localhost:8081/cmis/atom/default/versions?id=dddfd49f-ab13-435d-b65c-7e18d3bfbed3,它也能正确地到达服务器端的getAllVersions方法,并且工作良好。

我得到的例外是:

org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException: Operation not supported by the repository for this object!
    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.throwLinkException(AbstractAtomPubService.java:294)
    at org.apache.chemistry.opencmis.client.bindings.spi.atompub.VersioningServiceImpl.getAllVersions(VersioningServiceImpl.java:276)
    at org.apache.chemistry.opencmis.client.runtime.DocumentImpl.getAllVersions(DocumentImpl.java:385)
    at org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest.checkVersionHistory(AbstractSessionTest.java:1813)
    at org.apache.chemistry.opencmis.workbench.checks.ObjectComplianceCheck.run(ObjectComplianceCheck.java:55)
    at org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest.run(AbstractSessionTest.java:181)
    at org.apache.chemistry.opencmis.tck.impl.AbstractCmisTestGroup.run(AbstractCmisTestGroup.java:115)
    at org.apache.chemistry.opencmis.workbench.details.ObjectPanel$3.actionPerformed(ObjectPanel.java:346)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
  Exception: Operation not supported by the repository for this object!

共有1个答案

姚永年
2023-03-14

服务器不提供指向versions资源的链接,尽管文档被标记为可版本的。

ObjectInfo对象中设置版本系列ID。这应该会增加缺失的链接。

 类似资料:
  • 相反,将引发“UnsupportedOperationException”。看起来ContainerRequest没有从修改的请求中提取UserPrincipal。 修改是通过 问题是如何将主体信息从HttpServerProbe传输到ContainerRequestFilter。request具有安全信息(在本例中是SSL客户机证书信息),而com.sun.jersey.spi.containe

  • 我需要简单地计算一张纸上的区域数。我的密码是: 但是由于某种原因,我收到错误消息“Object 不支持此属性或方法。”我不知道为什么。这段代码基本上只是从微软网站复制的。 我甚至无法使用即时窗口打印部分。 有什么快速的帮助吗?我正在使用Excel 2010。 谢了。

  • 我有以下rails配置: 有没有人对是什么导致了这个错误有什么建议?

  • 我不知道;我不太明白在哪里可以抛出这个异常。 例如,我正在实现

  • 我正在使用sql server进行数据库连接。并且我希望在运行多个结果集时保持结果集打开。我使用了,但在执行语句时出现以下错误, 由于我是使用sql server的新手,所以我对其中的一些概念还不是很了解。如果有人知道为什么会这样请回答我。

  • 问题内容: 我在Surface Pro 3上安装了Rails,并在尝试查看页面后遇到此错误。我尝试了一些建议,例如使用libv8安装rubyracer,但没有帮助。 TypeError:对象不支持此属性或方法(在c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/turbolinks-2.5.3/lib/assets/javascripts/t