使用Alfresco 5.0社区版。
尝试部署custom model provided in the answer to another question时, 但使用[http://docs.alfresco.com/5.0/tasks/deploy-dynamic.html]
中指定的动态部署方法尽管GUI表示该模型已被激活",但我在alfresco.log中获得了以下WARN:
21:24:30,587 WARN [org.alfresco.repo.dictionary.DictionaryDAO] [ajp-apr-8009-exec-4]
org.alfresco.service.cmr.dictionary.DictionaryException:
00140008 Model '{custom.model}custommodel' does not exist
当我尝试将其与CMIS 1.1一起使用时,我收到了来自网络服务的错误:
Type 'P:cmod:customDoc' is unknown!
以下是使用opencmis java api的代码的相关位:
Map<String, Object> props = new HashMap<String, Object>();
props.put("cmis:objectTypeId", "cmis:document");
props.put("cmis:secondaryObjectTypeIds", Arrays.asList(new String[] {"P:cm:titled", "P:cmod:customDoc"}));
props.put("cmis:name", "myName");
props.put("cmod:property1", "value1");
ObjectId id = folder.createDocument(props, contentStream, VersioningState.MAJOR);
我是否正确指定了命名空间和方面(P:cmod:customDoc)?我也试过cmod:aspectBase和其他组合,得到同样的错误。
我的目标是制作一个简单的模型,我可以在其中添加一些额外的字段来记录对象(扩展默认的ContentModel)。
答案 0 :(得分:0)
似乎警告就是这样,它可以被忽略。
但是使用CMIS 1.1,我必须执行两个步骤来添加自定义方面的额外属性。 (尝试一步完成就会出现错误&#34;输入&#39; P:cmod:customDoc&#39;未知!&#34;)
第一个带有cmis的createDocument():secondaryObjectTypeIds包括自定义命名空间,但不要添加任何自定义属性。
其次,将自定义属性添加到结果文档,然后再添加updateProperties()。这会将自定义属性值添加到文档中。
Map<String, Object> props = new HashMap<String, Object>();
props.put("cmis:objectTypeId", "cmis:document");
props.put("cmis:secondaryObjectTypeIds",
Arrays.asList(new String[] {"P:cm:titled", "P:cmod:customDoc"}));
props.put("cmis:name", "myName");
Document document = folder.createDocument(props, contentStream, VersioningState.MAJOR);
props = new HashMap<String, Object>();
props.put("cmod:property1", "value1"); //here is where you add the custom properties
document = (Document) document.updateProperties(properties);
(注意:您需要从updateProperties结果重新分配文档,否则会丢失一些信息,例如父母)