3

我不确定我是否将洋葱与卷心菜进行比较。但我真的对 portlet 和 Web 服务感到困惑。我知道 Web 服务将您的应用程序中的软件组件作为对其他应用程序的服务,但对我来说,它类似于响应请求的 portlet。我知道我的理解让您(Portlet 和 SAAS 开发人员)非常沮丧。但我需要澄清这一点。

为什么我不能使用请求-响应来实现类似于 Web 服务的 portlet 工作?如果是,那么使用 Web 服务比使用 portlet 有什么好处?如果没有,那么作为 Web 服务的 portlet 缺少什么?

我是 Portlet 开发的新手。请不要因为这个问题诅咒我。

请建议。

编辑: 大多数答案都说 portlet 是一个 UI 组件。我的客户要求我在 liferay 中创建一个网络服务。那么是将portlet 制作为Web 服务吗?如果是,您能否提供一个指针或一些代码片段?

4

3 回答 3

2

专门针对 Liferay 解决您的“编辑”问题...

Liferay 插件项目无需太多工作即可公开 Web 服务。

Liferay 服务构建器实际上具有一些功能,因此您可以创建由 Liferay 数据库中的表支持的 SOAP Web 服务或 JSON Web 服务(以及对现有数据库表进行查询)。在 JSON Web 服务的情况下,生成的 URL 方案不是 RESTful(很遗憾),但它是很好定义的。通过您的一些工作,您也可以将 Liferay 的权限系统应用于 Web 服务调用。

这是Liferay 开发人员指南中的一个合理起点:

请参阅该页面上指向 SOAP 和 JSON 服务的链接。

请注意,“portlet”只是 Liferay 插件的一种。Web 服务工具是服务层的一部分——它可以被许多插件类型使用。因此,在 Liferay 中创建 Web 服务不一定需要一个 portlet,您可以创建一个没有与之关联的可视组件的 Web 服务。

于 2013-09-14T14:37:32.740 回答
1

Portlet 是您为添加和显示内容而创建的区域。Portlet 可以添加到中心主体区域的左侧和右侧,并且可以包含各种内容,包括新闻、事件、日历、RSS 提要、集合、纯文本等。此外,您可以设置用于显示 portlet 的属性和策略。

当您有想要特别关注的内容(例如新闻)时,您想使用 portlet。您需要指定项目的配置数据。- 即要显示的条目数。您希望让内容编辑者选择何时何地显示内容。您只想向某些组或用户展示它。

另一方面,网络服务:

  • 使应用程序能够“以编程方式”公开其服务,即服务可以由程序调用

  • 使运行在其他计算机(可能是台式机、手机、PDA 等)上的软件能够调用 Web 应用程序公开的操作

如果您试图识别历史上的主要差异门户,则 portlet 具有三层架构(客户端、中间层、后端),这会导致两个弱点:

  1. 不同的门户组没有完善的共享服务方式
    • 中间层的不同技术(Java、Perl、CORBA、EJB)。
    • 不同的协议(GRAM、IIOP、...)
  2. 因此,大量的冗余、重新发明
    • 示例:批处理脚本生成

所以Web服务解决了服务共享问题,减少了冗余。

来源1 来源 2 来源3

于 2013-09-13T15:19:41.473 回答
0

Portlets are meant to be a user interface component in a portal solution.

Web Services provide functionality to remotely interact with a system commonly using SOAP, REST, JMS or other related

They provide completely separate functions. The closest you get is the serveResource method in portlets. This functionality is used to serve various types of content from a portlet (such as a PDF document or an AJAX response) without the need to perform a full page request.

于 2013-09-13T15:54:51.783 回答