0

我正在尝试将文件的节点引用上传到我的 java 类中的默认根目录。

我试过这个链接。

但它返回空结果集。如何编写搜索查询来获取特定的文件节点。或者有什么方法可以从 java 类中的 sting 创建节点 ref。

我的代码:

NodeRef companyHomeNodeRef = null;
            StoreRef storeRef = new StoreRef(StoreRef.PROTOCOL_WORKSPACE,
                    "SpacesStore");

            ResultSet rs = searchService.query(storeRef,
                    SearchService.LANGUAGE_LUCENE, "\\\"/app:company_home/app:user_homes/sys:boris/cm:mypics\\");

            try {
                System.out.println("length :" + rs.length());
                if (rs.length() == 0) {
                    // throw new Exception("Didn't find Company Home");
                } else {
                    companyHomeNodeRef = rs.getNodeRef(0);
                }
            } finally {
                rs.close();
            }

谢谢

4

2 回答 2

2

您的 Lucene 搜索语法不正确。如果你想要上传图片的文件夹,你可以使用:PATH:"/app:company_home/app:user_homes/cm:boris/cm:mypics"

如果您希望对象位于该文件夹中,您可以使用:PATH:"/app:company_home/app:user_homes/cm:boris/cm:mypics/*"

如果您想要该文件夹中的特定对象,您可以使用:PATH:"/app:company_home/app:user_homes/cm:boris/cm:mypics/cm:test.png"

一个测试查询的好工具是节点浏览器,它在 Alfresco Explorer 和 Alfresco Share 中都可用。请务必选择“Lucene”作为搜索语法,然后尝试您的查询。一旦他们返回您正在寻找的对象,请将其插入您的 Java 代码。

于 2012-04-05T19:55:13.577 回答
0

我已经解决了这个问题。下面是从节点引用字符串创建文件的节点引用并更新文件内容的代码。

           AuthenticationUtil.runAs(new RunAsWork<String>() {

                @Override
                public String doWork() throws Exception {

                    NodeRef nodeRef = new NodeRef("workspace://SpacesStore/f1a5e908-80cb-4c6e-b919-cc80fe53b835");
                    if(contentService != null) {
                        ContentWriter writer = contentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true);
                        if(writer != null) {
                            writer.putContent(new ByteArrayInputStream("updated content".getBytes()));
                        } 
                    } 
                    return null;
                }

            }, AuthenticationUtil.getSystemUserName());
于 2012-04-11T13:09:00.457 回答