如何在Java中创建Liferay web内容?

如何在Java中创建Liferay web内容?,liferay,liferay-7,Liferay,Liferay 7,通过UI创建Web内容很容易 但是如何用Java以编程方式添加新的Web内容呢 我必须将数据从遗留系统迁移到Liferay 7,因此我正在编写一个JavaOSGi包来实现这一点。没有用户界面。Nicolas 在Liferay 6.2中,我有一个类似的问题需要解决,但我相信您可以使用相同的方法解决您的问题 我们构建了一个“集成接口”(一个触发整个过程的简单Java批处理项目),它与遗留系统和Liferay REST服务(使用Liferay Service Builder创建)通信 Liferay

通过UI创建Web内容很容易

但是如何用Java以编程方式添加新的Web内容呢

我必须将数据从遗留系统迁移到Liferay 7,因此我正在编写一个JavaOSGi包来实现这一点。没有用户界面。

Nicolas

在Liferay 6.2中,我有一个类似的问题需要解决,但我相信您可以使用相同的方法解决您的问题

我们构建了一个“集成接口”(一个触发整个过程的简单Java批处理项目),它与遗留系统和Liferay REST服务(使用Liferay Service Builder创建)通信

Liferay为您提供了一个服务API,您可以在其中处理它的一些资源。要创建期刊文章(Web内容),必须调用类

以下是创建期刊文章的示例代码:

public static JournalArticle addJournalArticle(
        long userId, long groupId, String title, String contentEn)
        throws Exception {

    ServiceContext serviceContext = new ServiceContext();

    serviceContext.setAddGroupPermissions(true);
    serviceContext.setAddGuestPermissions(true);
    serviceContext.setScopeGroupId(groupId);
    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);
    Map<Locale, String> titleMap = new HashMap<Locale, String>();
    Map<Locale, String> descriptionMap = new HashMap<Locale, String>();

    titleMap.put(Locale.US, title);
    descriptionMap.put(Locale.US, title);


    try {
        JournalArticleLocalServiceUtil.deleteArticle(groupId, title, serviceContext);
    } catch (Exception ex) {
        System.out.println("Ignoring " + ex.getMessage());
    }

    String xmlContent = "<?xml version='1.0' encoding='UTF-8'?>" +
            "<root default-locale=\"en_US\" available-locales=\"en_US\">" +
                "<static-content language-id=\"en_US\">" +
                    "<![CDATA[" + contentEn + "]]>" +
                "</static-content>" +
            "</root>";

    JournalArticle article = JournalArticleLocalServiceUtil.addArticle(
            userId, groupId, 0, 
            0, 0, title, true, 
            JournalArticleConstants.VERSION_DEFAULT, titleMap, 
            descriptionMap, xmlContent, 
            "general", null, null, null, 
            1, 1, 2014, 0, 0,
            0, 0, 0, 0, 0, true, 
            0, 0, 0, 0, 0, true, 
            true, false, null, null, 
            null, null, serviceContext);

    return article;
}
publicstaticjournalaarticle addjournalaarticle(
长userId、长groupId、字符串标题、字符串contentEn)
抛出异常{
ServiceContext ServiceContext=新的ServiceContext();
serviceContext.setAddGroupPermissions(true);
serviceContext.setAddGuestPermissions(true);
serviceContext.setScopeGroupId(groupId);
serviceContext.setWorkflowAction(WorkflowConstants.ACTION\u PUBLISH);
Map titleMap=newhashmap();
Map descriptionMap=newhashmap();
titleMap.put(Locale.US,title);
descriptionMap.put(Locale.US,title);
试一试{
JournalArticleLocalServiceUtil.deleteArticle(组ID、标题、serviceContext);
}捕获(例外情况除外){
System.out.println(“忽略”+ex.getMessage());
}
字符串xmlContent=“”+
"" +
"" +
"" +
"" +
"";
JournalArticle article=JournalArticleLocalServiceUtil.addArticle(
用户标识,组标识,0,
0,0,标题,对,
JournalArticleConstants.VERSION\u默认值,标题映射,
descriptionMap、xmlContent、,
“一般”,空,空,空,
1, 1, 2014, 0, 0,
0,0,0,0,0,对,
0,0,0,0,0,对,
真,假,空,空,
null,null,serviceContext);
退货物品;
}
但您必须改进它,以放置正确的用户权限、类别、标记等。

Nicolas

在Liferay 6.2中,我有一个类似的问题需要解决,但我相信您可以使用相同的方法解决您的问题

我们构建了一个“集成接口”(一个触发整个过程的简单Java批处理项目),它与遗留系统和Liferay REST服务(使用Liferay Service Builder创建)通信

Liferay为您提供了一个服务API,您可以在其中处理它的一些资源。要创建期刊文章(Web内容),必须调用类

以下是创建期刊文章的示例代码:

public static JournalArticle addJournalArticle(
        long userId, long groupId, String title, String contentEn)
        throws Exception {

    ServiceContext serviceContext = new ServiceContext();

    serviceContext.setAddGroupPermissions(true);
    serviceContext.setAddGuestPermissions(true);
    serviceContext.setScopeGroupId(groupId);
    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);
    Map<Locale, String> titleMap = new HashMap<Locale, String>();
    Map<Locale, String> descriptionMap = new HashMap<Locale, String>();

    titleMap.put(Locale.US, title);
    descriptionMap.put(Locale.US, title);


    try {
        JournalArticleLocalServiceUtil.deleteArticle(groupId, title, serviceContext);
    } catch (Exception ex) {
        System.out.println("Ignoring " + ex.getMessage());
    }

    String xmlContent = "<?xml version='1.0' encoding='UTF-8'?>" +
            "<root default-locale=\"en_US\" available-locales=\"en_US\">" +
                "<static-content language-id=\"en_US\">" +
                    "<![CDATA[" + contentEn + "]]>" +
                "</static-content>" +
            "</root>";

    JournalArticle article = JournalArticleLocalServiceUtil.addArticle(
            userId, groupId, 0, 
            0, 0, title, true, 
            JournalArticleConstants.VERSION_DEFAULT, titleMap, 
            descriptionMap, xmlContent, 
            "general", null, null, null, 
            1, 1, 2014, 0, 0,
            0, 0, 0, 0, 0, true, 
            0, 0, 0, 0, 0, true, 
            true, false, null, null, 
            null, null, serviceContext);

    return article;
}
publicstaticjournalaarticle addjournalaarticle(
长userId、长groupId、字符串标题、字符串contentEn)
抛出异常{
ServiceContext ServiceContext=新的ServiceContext();
serviceContext.setAddGroupPermissions(true);
serviceContext.setAddGuestPermissions(true);
serviceContext.setScopeGroupId(groupId);
serviceContext.setWorkflowAction(WorkflowConstants.ACTION\u PUBLISH);
Map titleMap=newhashmap();
Map descriptionMap=newhashmap();
titleMap.put(Locale.US,title);
descriptionMap.put(Locale.US,title);
试一试{
JournalArticleLocalServiceUtil.deleteArticle(组ID、标题、serviceContext);
}捕获(例外情况除外){
System.out.println(“忽略”+ex.getMessage());
}
字符串xmlContent=“”+
"" +
"" +
"" +
"" +
"";
JournalArticle article=JournalArticleLocalServiceUtil.addArticle(
用户标识,组标识,0,
0,0,标题,对,
JournalArticleConstants.VERSION\u默认值,标题映射,
descriptionMap、xmlContent、,
“一般”,空,空,空,
1, 1, 2014, 0, 0,
0,0,0,0,0,对,
0,0,0,0,0,对,
真,假,空,空,
null,null,serviceContext);
退货物品;
}

但是您必须改进它,以放置正确的用户权限、类别、标记等。

在这种情况下,查看


也考虑使用。虽然您的案例并不是真正的更新,但它听起来像是一个一次性操作,您最好在启动时执行。

在这种情况下,查看


也考虑使用。虽然您的案例并不是一个真正的更新,但它听起来像是一个一次性操作,您最好在启动时执行。

而且我还了解了很多关于深入到github存储库中的Liferay API的知识。谢谢!注意:对于Liferay 7,
addArticle
调用似乎还需要一个参数。我还了解了很多有关深入到github存储库中的Liferay API的知识。谢谢!注意:似乎对于Liferay 7,
addArticle
调用还需要一个参数。