在alfresco存储库中如何使用java api

时间:2016-07-22 06:19:47

标签: alfresco alfresco-share opencmis apache-chemistry

大家好我是alfresco的初学者。我做了很多服务,比如创建文件夹,子文件夹,上传文档,下载文档,使用cmis创建权限。 但我无法使用cmis创建一个文件夹到另一个文件夹的链接。 有人告诉我使用cmis不可能。 不知怎的,我有了这个链接 http://basanagowdapatil.blogspot.in/2011/01/code-for-creating-links-in-alfresco.html。 但是这段代码不是cmis。 我从来没有做过这种编程。 有人可以建议我如何在maven中执行此程序。 我应该添加什么依赖或罐子。 如果有人一步一步地解释我(在某种意义上如何提供身份验证),那就更好了。 提前致谢

1 个答案:

答案 0 :(得分:0)

我得到了答案,我们可以使用CMIS API做同样的事情。

import java.util.HashMap;
import java.util.Map;

import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.commons.PropertyIds;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

import com.bizruntime.alfresco.session.CreateSession;
import com.bizruntime.alfresco.util.Config;

public class CreateLink {
    static Logger log = Logger.getLogger(CreateLink.class);

    public static void getLink() {
        // creating Session
        Session cmiSession = new CreateSession().getSession();
        log.debug("Session Created...");
        Map<String,Object> properties = new HashMap<>();
        properties.put(PropertyIds.BASE_TYPE_ID, BaseTypeId.CMIS_ITEM.value());

        // Define a name and description for the link
        properties.put(PropertyIds.NAME, Config.getConfig().getProperty("nameOfLink"));
        properties.put("cmis:description", Config.getConfig().getProperty("linkDescription"));
        properties.put(PropertyIds.OBJECT_TYPE_ID, "I:app:filelink");

        // Define the destination node reference
        properties.put("cm:destination", Config.getConfig().getProperty("destination-nodRef"));

        // Choose the folder where the link to be create
        Folder rootFoler = cmiSession.getRootFolder();
        Folder targerFolder = (Folder) cmiSession.getObjectByPath(rootFoler.getPath() + Config.getConfig().getProperty("targetFolder"));
        cmiSession.createItem(properties, targerFolder);
        log.info("Link Created Successfully....");
    }

    public static void main(String[] args) {
        BasicConfigurator.configure();
        CreateLink cl = new CreateLink();
        cl.getLink();               
    }
}

创建文件夹链接的代码:

import java.util.HashMap;
import java.util.Map;

import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.commons.PropertyIds;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

import com.bizruntime.alfresco.session.CreateSession;
import com.bizruntime.alfresco.util.Config;

public class CreateLink {
    static Logger log = Logger.getLogger(CreateLink.class);
    public static void getLink() {
        // creating Session
        Session cmiSession = new CreateSession().getSession();
        log.debug("Session Created...");
        Map<String,Object> properties = new HashMap<>();
        properties.put(PropertyIds.BASE_TYPE_ID, BaseTypeId.CMIS_ITEM.value());

        // Define a name and description for the link
        properties.put(PropertyIds.NAME, Config.getConfig().getProperty("nameOfLink"));
        properties.put("cmis:description", Config.getConfig().getProperty("linkDescription"));
        properties.put(PropertyIds.OBJECT_TYPE_ID, "I:app:filelink");

        // Define the destination node reference
        properties.put("cm:destination", Config.getConfig().getProperty("destination-nodRef"));

        // Choose the folder where the link to be create
        Folder rootFoler = cmiSession.getRootFolder();
        Folder targerFolder = (Folder) cmiSession.getObjectByPath(rootFoler.getPath() + Config.getConfig().getProperty("targetFolder"));
        cmiSession.createItem(properties, targerFolder);
        log.info("Link Created Successfully....");
    }

    public static void main(String[] args) {
        BasicConfigurator.configure();
        CreateLink cl = new CreateLink();
        cl.getLink();
    }
}