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

无法在自定义alfresco文件夹中创建cmis:文档

夹谷俊远
2023-03-14

我使用open cmis在Alfresco存储库(5.1e)中创建带有附件的文件夹(自定义类型)。文件夹创建成功,但对于将文档(cmis:document-cm:content)创建为附件,我得到以下异常:

下面是将文档添加到文件夹的源代码(方法):

private Document createDocument(Session cmisSession, Folder parentFolder, byte[] file, String fileName, String fileType) {

Document document = null;

try {

Map<String, Object> docProperties = new HashMap<String, Object>();    
docProperties.put(PropertyIds.OBJECT_TYPE_ID,  "cmis:document");
docProperties.put(PropertyIds.NAME, fileName);

    ContentStream contentStream = cmisSession.getObjectFactory().createContentStream(fileName, file.length, fileType, new ByteArrayInputStream(file));

        document = parentFolder.createDocument(docProperties, contentStream, null);

    } catch (CmisContentAlreadyExistsException ccaee) {
        document = (Document) cmisSession.getObjectByPath(parentFolder.getPath() + "/" + fileName);            
    }

    return document;
}

共有1个答案

怀浩大
2023-03-14

这是关于你的文件夹,而不是关于你的文档。看看导致错误的代码,原因将变得不明确。有一个名为cmis:AllowedChildObjectTypeIDs的属性,它就是您要找的。

您的模型是如何定义的?

public void checkChildObjectType(CMISNodeInfo folderInfo, String childType)
    {
        TypeDefinitionWrapper targetType = folderInfo.getType();
        PropertyDefinitionWrapper allowableChildObjectTypeProperty = targetType
                .getPropertyById(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS);
        List<String> childTypes = (List<String>) allowableChildObjectTypeProperty.getPropertyAccessor().getValue(
                folderInfo);

        if ((childTypes == null) || childTypes.isEmpty())
        {
            return;
        }

        if (!childTypes.contains(childType))
        {
            throw new CmisConstraintException("Objects of type '" + childType + "' cannot be added to this folder!");
        }
    }
 类似资料:
  • 使用带有restful Webservices的open cmis在Alfresco中创建文件夹 我如何使用Open Cmis和RESTFul Webservices在Alfresco中创建文件夹?我尝试了,但它显示以下错误: 请提前帮我解决这个错误。。 web.xml网站

  • 通过使用android 11(SDK API 30)设备下面的一些方法 但在Android11中运行良好。无法使用如下所示的方法使其im 函数调用 uri是我从拾取器的响应中获得的视频路径。 copyFile的函数调用 错误:new ;path:/storage/emulated/0/download/stop/mp4_20210128225711.mp4 system.err:java.io.f

  • 本文向大家介绍Python写的创建文件夹自定义函数mkdir(),包括了Python写的创建文件夹自定义函数mkdir()的使用技巧和注意事项,需要的朋友参考一下 Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建。 主要涉及到三个函数: 1、os.path.exists(path) 判断一个目录是否存在 2、os.makedirs(path) 多层创建目

  • 问题内容: import java.io.File; File folder = new File(Environment.getExternalStorageDirectory() + “/TollCulator”); boolean success = true; if (!folder.exists()) { //Toast.makeText(MainActivity.this, “Dire

  • 问题内容: 我不熟悉Swift,也不确定如何从字符串路径(或某种对象)创建新文件夹 这是在带有Cocoa的OS X上。 问题答案: 我的理解是,您正在尝试使用swift以编程方式创建目录。下面给出的代码执行相同的操作。

  • 问题内容: 我有问题让用户通过ajax请求>路由> controller @ method在laravel 4中创建文件夹。 我确实对url调用权方法测试了ajax成功请求。 当我使用或(此方法存在吗?)时,我将得到响应并且无法创建新文件夹..该如何解决? route.php AdminDashboardController js 问题答案: 不,实际上是 另外,您可以尝试以下操作: 更新: 确实