gpt4 book ai didi

alfresco - 无法创建自定义分类

转载 作者:行者123 更新时间:2023-12-01 06:09:58 24 4
gpt4 key购买 nike

我已将以下自定义方面添加到我的内容模型中:

<aspect name="my:locationDocumentClassification">
<title>My Location Document Classification</title>
<parent>cm:classifiable</parent>
<properties>
<property name="my:locationDocumentCategory">
<title>Location Document Categories</title>
<type>d:category</type>
<mandatory>false</mandatory>
<multiple>false</multiple>
<index enabled="true">
<atomic>true</atomic>
<stored>true</stored>
<tokenised>false</tokenised>
</index>
</property>
</properties>
</aspect>

现在我希望能够将一组类别填充到分类中。我正在使用以下 Webscript 来填充类别:
    protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) {
// NodeRef newRootCat = categoryService.createRootCategory(
// StoreRef.STORE_REF_WORKSPACE_SPACESSTORE,
// ContentModel.ASPECT_GEN_CLASSIFIABLE,
// "testroot");
// LOGGER.log(Level.INFO, "Created: {0}", newRootCat.toString());
// NodeRef newCategory = categoryService.createCategory(newRootCat, "testcat");
// LOGGER.log(Level.INFO, "Created: {0}", newCategory.toString());
// NodeRef locationDocumentClassification = categoryService.createClassification(
// StoreRef.STORE_REF_WORKSPACE_SPACESSTORE,
// MyModel.ASPECT_MY_LOCATION_DOCUMENT_CLASSIFICATION,
// "locationDocumentClassification");
// LOGGER.log(Level.INFO, "Created: {0}", locationDocumentClassification.toString());
NodeRef locationDocumentRootCat = categoryService.createRootCategory(
StoreRef.STORE_REF_WORKSPACE_SPACESSTORE,
MyModel.ASPECT_MY_LOCATION_DOCUMENT_CLASSIFICATION,
"testroot");
LOGGER.log(Level.INFO, "Created: {0}", locationDocumentRootCat.toString());
NodeRef klantDocCat = categoryService.createCategory(locationDocumentRootCat, "testcat");
LOGGER.log(Level.INFO, "Created: {0}", klantDocCat.toString());
return new HashMap<>();
}

当我执行代码时,出现以下错误:
10170041 Wrapped Exception (with status template): 10170014 Missing classification: {http://my.company.com/model/content/1.0}locationDocumentClassification

代码中前两个注释掉的语句是来自 Alfresco 的示例代码,效果很好。第三个注释掉的语句是我试图首先创建一个分类,看看它是否有效。取消注释 createClassification 时出现的错误陈述:
java.lang.UnsupportedOperationException         at org.alfresco.repo.search.impl.lucene.LuceneCategoryServiceImpl.createClassification(LuceneCategoryServiceImpl.java:369)

所以没有运气。我希望有人能看到这个问题。我阅读了我能找到的所有关于此的帖子和论坛,但找不到答案。

我使用的是 Alfresco 5.0d 社区版。

最佳答案

如果您下载 SDK 的源文件,您将看到您正在触发以下代码:

public NodeRef createRootCategory(StoreRef storeRef, QName aspectName, String name)
{
Set<NodeRef> nodeRefs = getClassificationNodes(storeRef, aspectName);
if (nodeRefs.size() == 0)
{
throw new AlfrescoRuntimeException("Missing classification: " + aspectName);
}
NodeRef parent = nodeRefs.iterator().next();
return createCategory(parent, name);
}



private Set<NodeRef> getClassificationNodes(StoreRef storeRef, QName qname)
{
ResultSet resultSet = null;
try
{
resultSet = indexerAndSearcher.getSearcher(storeRef, false).query(storeRef, "lucene",
"PATH:\"/" + getPrefix(qname.getNamespaceURI()) + ISO9075.encode(qname.getLocalName()) + "\"", null);

etc....
}

所以基本上它试图做的是搜索 已经创建类别并创建一个根。

所以你需要做的只是使用代码创建一个类型为 cm:category的节点。在 category_root并添加你的方面。
TYPE:"cm:category_root" 上搜索并创建它。

或者创建您自己的类型,它具有 cm:category 的父级。唯一的问题是您需要更改很多 UI 元素,因为它们只检查类型 cm:category。

关于alfresco - 无法创建自定义分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33763639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com