【问题标题】:Adding content to Liferay via API通过 API 向 Liferay 添加内容
【发布时间】:2011-09-19 08:25:09
【问题描述】:

我开始使用 Liferay Portal,我有两个基本需求希望通过 Liferay 实现。

  1. 是否可以通过 API 级别向 CMS 添加内容?我想“从代码”插入一些数据。
  2. 更重要。如何实现这样的情况,每一个创建的用户都会生成一个自己的主页,上面有一些预定义的模板元素?

到目前为止,我已尝试在 Google 上搜索一些内容,但没有发现它有帮助。也许一些关键字?


在对专门用于服务和 ServiceBuilder 的文档进行一些分析后,我意识到这不是我想要的。

让我展示一个基于 Websphere 的示例。 在 Websphere 中,我们有一堆 EJB 组件可用于执行一些操作,与门户交换信息,易于使用。 Liferay中没有类似的机制不涉及Web服务吗?

【问题讨论】:

    标签: java api content-management-system liferay


    【解决方案1】:

    我对这类问题的建议是看一下 Sevencogs-hook 源代码。这个钩子的结构基本上只是一个运行一次的长脚本,建立一个包含用户、站点、页面、内容等的完整演示站点。代码运行一次(在第一次部署之后),然后不再运行。没有(明显的)条件句,没有要理解的上下文等。

    您基本上可以逐步了解所有内容,并在该过程中了解内容(以及页面、图像、博客文章等)是如何在 Liferay 中的页面上创建和定位的。

    这个钩子访问 Java API,一个非常相似的 API 可以通过 Webservices 获得。基本上,Liferay 的所有 portlet 也使用相同的 API 来开展业务。

    编辑:保持此答案有价值/最新的其他信息:Sevencogs 已停产,但仍可在旧版本中使用(源代码和二进制文件)。 API 略有变化,因此编译/运行它需要一些工作。 James Falkner has blogged 关于剩余部分和经验教训 - 这些 sn-ps 是从 Sevencogs 中提取的,并包含与 API 一起使用的相关代码片段。

    【讨论】:

    • 从 Liferay 6.2 开始,一些旧的 API(在博文中提到)也被弃用了(如 JournalTemplateLocalServiceUtil)。而是使用动态数据映射框架 (DDM)。
    【解决方案2】:

    看看this page from the documentation:它闻起来像 SOAP 接口(他们提到了某种 文档上传器 服务,我已经阅读了 axis)。

    您会找到一些 url 示例,这些示例应该提供可用 Web 服务的列表。

    【讨论】:

    • 我不确定我是否理解得很好。你的意思是说那些“程序化”的活动可以通过执行 Liferay 提供的一些网络服务来实现吗?
    • 我是这么理解的。实现 SOAP 客户端并使用 liferay Web 服务来添加内容(从任何地方)。看看 apache 轴(库)和工具 soapUI(用于玩 liferay 服务)
    【解决方案3】:

    对于数字 1,您可以使用以下之一:

    JournalArticleLocalServiceUtil.addArticle()
    

    从portlet 以编程方式添加Liferay Web 内容的方法。如果您下载 Liferay Portal Source,您可以看到这些方法的结构。

    对于第 2 点,可以创建带有预配置 portlet 的页面模板(通过 Plugins-SDK),然后使用 API 以编程方式使用以下方法之一创建页面:

    LayoutLocalServiceUtil.addLayout()
    

    方法。

    如果您对这些评论有任何更具体的问题,请回复,我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 2023-04-08
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多