露天方面secondaryType

Alfresco aspect secondaryType

我在 Java 中遇到带有 Alfresco 的 openCmis 问题。 我尝试将 secondaryType "abc:aspectCustom" 添加到我的文档中,就像我们在这段代码中看到的那样:

props.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value());
    props.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, Arrays.asList("P:abc:aspectCustom"));
    ContentStream contentStream = session.getObjectFactory().createContentStream(documentName, sizeFolder, typeFile, inputStream);
    Document document = targetFolder.createDocument(props, contentStream, VersioningState.CHECKEDOUT);

但是我有这个错误:

java.lang.IllegalArgumentException: Secondary types property contains a type that is not a secondary type: P:abc:aspectCustom

所以我尝试调试,发现我的问题来自这部分代码 (ObjectFactoryImpl):

if (!(secondaryType instanceof SecondaryType)) {
                    throw new IllegalArgumentException(
                            "Secondary types property contains a type that is not a secondary type: " + secondaryTypeId);
                }

当我调试 secondaryType 对象时,我看到他是 PolicyType 的实例而不是 SecondaryType. 所以我现在不知道问题出在哪里!为什么我在模型中的方面被解释为策略而不是次要类型。

有关信息,在 Alfresco 模型中我有这个:

<aspect name="abc:aspectCustom">
            <title>ABCAspect</title>
</aspect> 

谢谢你:)

首先,确保您使用的是 CMIS 1.1 服务 URL,即 https://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom for the ATOMPub binding and https://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser 用于浏览器绑定。

接下来,尝试添加一个开箱即用的方面,例如 P:cm:geographic,而不是您的自定义方面,只是为了确保它有效。这将排除您的自定义内容模型的任何问题。