【问题标题】:Alfresco error: Model '{custom.model}custommodel' does not existAlfresco 错误:模型“{custom.model}custommodel”不存在
【发布时间】:2015-01-14 22:05:38
【问题描述】:

使用 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 中收到以下警告:

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)。

【问题讨论】:

  • 您确定将自定义模型文件放到服务器上的正确位置吗?
  • 是的,在“存储库>数据字典>模型”中。然后我单击属性中的模型活动复选框。 GUI 说模型处于活动状态:“活动:trueModel 名称:custommodelModel 描述:自定义模型”但我立即在日志中收到警告。
  • 顺便说一句:这是使用动态部署方法:http://docs.alfresco.com/5.0/tasks/deploy-dynamic.html
  • 您可以编辑您的问题并输入该信息吗?格式已作为评论丢失,所以我无法弄清楚那个 gui 信息是什么

标签: alfresco cmis custom-type


【解决方案1】:

看来警告就是这样,可以忽略。

但使用 CMIS 1.1,我必须执行 两个步骤 来添加自定义方面的额外属性。 (尝试一步完成会出现错误“Type 'P:cmod:customDoc' is unknown!”)

首先使用 cmis:secondaryObjectTypeIds 的 createDocument() 包括自定义命名空间,但不要添加任何自定义属性。

其次,将自定义属性添加到生成的文档,然后 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结果中重新赋值文档,否则会丢失一些信息,比如parents)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-26
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2014-06-18
    相关资源
    最近更新 更多