代码之家  ›  专栏  ›  技术社区  ›  Prashant Sharma

属性“pos:empCode”对此类型或其中一个辅助类型无效!在cmis中设置自定义对象时出错

  •  1
  • Prashant Sharma  · 技术社区  · 7 年前

    在地图中添加自定义对象时,会出现错误。

    Java语言lang.IllegalArgumentException:属性“pos:empCode”不是 有效期为 此类型或次要类型之一!位于组织。阿帕奇。化学opencmis。客户运行时。存储库。ObjectFactoryImpl。conver公司 t位于的属性(ObjectFactoryImpl.java:426) 组织。阿帕奇。化学opencmis。客户运行时。SessionImpl。createDocument(会话 实施。java:1091)位于组织。阿帕奇。化学opencmis。客户运行时。文件夹模板。创建文档(FolderImp l、 爪哇:77)

    我的代码是:

        Map<String, Object> metaData = new HashMap<String, Object>(0);
        metaData.put(DocumentConstants.EMPCODE, empCode);
    //  metaData.put(DocumentConstants.TYPE, Constants.EMP_FILE_UPLOAD);
    //  metaData.put(DocumentConstants.SUBTYPE, Constants.ADD);
        docService.uploadDocumentsForAlfresco(metaData, byteArray, fileName);
    

    文档服务:

        public Boolean uploadDocumentsForAlfresco(Map<String, Object> metaData, 
        byte[] data, String name) {
            Session session = connect();
            String folderPath = null;
            folderPath = cmisSite.concat(cmisPath).concat("documentlibrary/");
           //       String path = 
        "DATAFILES/".concat(metaData.get(DocumentConstants.EMPCODE).toString());
        String path = "DATAFILES/".concat("6");
        folderPath = folderPath.concat(path);
        Folder folder = createFolder(session, folderPath); 
    // metaData.put(PropertyIds.OBJECT_TYPE_ID, "D:ebs:bulkUploadDoc");
        metaData.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
        // set the alfresco object factory
    
        metaData.put(PropertyIds.NAME, name);
        ByteArrayInputStream input = new ByteArrayInputStream(data);
        ContentStream contentStream = 
       session.getObjectFactory().createContentStream(name, data.length, 
       "application/octet-stream", input);
        try {
                folder.createDocument(metaData, contentStream, 
        VersioningState.MAJOR);
                return true;
        } catch (Exception ex) {
       //log.error("exception while uploading document",ex);
            ex.printStackTrace();
            return false;
        }
      }
    

    在pom中添加了依赖项。xml

       <dependency>
            <groupId>org.alfresco.cmis.client</groupId>
            <artifactId>alfresco-opencmis-extension</artifactId>
            <version>0.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.chemistry.opencmis</groupId>
            <artifactId>chemistry-opencmis-client-impl</artifactId>
            <version>0.13.0</version>
        </dependency>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Jeff Potts    7 年前

    pos:empCode是在自定义类型或特性之一上定义的属性。您试图在对象上设置该属性的值,但已告诉CMIS对象类型为CMIS:document。cmis:document类型映射到cm:content,即没有自定义属性的开箱即用类型。

    使用自定义模型中定义pos:empCode属性的类型的对象类型ID,而不是使用cmis:document作为对象类型ID。