7

我正在尝试在谷歌应用引擎上构建一些“portlet 服务器”-ish。(作为开源)

我想使用 JSR168/286 标准,但我认为应用程序引擎的限制将使它介于棘手和不可能之间。

有没有人尝试在谷歌应用引擎上运行 jetspeed 或内部使用 pluto 的应用程序?

根据我目前对 portlet 和 google app 引擎的了解,我预计会出现以下问题:

从部署的角度来看,带有 portlet 的 war 文件或多或少是一个完整的 web 应用程序(是的,我知道如果没有门户服务器,它实际上无法工作)。war 文件可能包含它自己的 web.xml 等。这使得在应用程序引擎上部署相当困难,因为应用程序彼此不可见,因此所有包含存档的 portlet 都需要包含在部署的“应用程序”的 war 文件中基于引擎的门户服务器”。

“portlet”(至少在 liferay 中)作为永久 servlet 进程启动,基于它们的 portlet.xmls 和 web.xmls,对于每个加载的 portlet 存档,它们位于同一位置。我认为这在应用程序引擎中可能存在问题,因为一切都在一个大的“网络应用程序”中,因此从每个存档访问 portlet.xmls 可能会很棘手。

在我看来,这会阻止 100% 的兼容性。

这里有谁对 Portlet 和应用程序引擎的组合有任何经验吗?

您认为修改 jetspeed、pluto 或任何其他 portlet 容器以使其能够在应用程序引擎上运行是否可行?

4

1 回答 1

2

我已经简要地看了它——你最大的问题是 Portlet 规范建立在但覆盖了 servlet 规范的一些关键位——特别是它通常需要支持跨上下文调用。

虽然可以设计一个包含多个 portlet 和 servlet 容器的单个 web 应用程序(通常用于管理 portlet,或者在 Liferay 的情况下,它们的大部分堆栈都是如此),但这并不容易。

实际上,如果要在 AppEngine 上进行门户类型的工作,我会更仔细地研究托管 OpenSocial 小部件(如果您真的想要标准),可能在 Shindig 中运行,或者在外部托管。这也可以让您获得 JSR-168 兼容性,因为有许多(不是很好)桥接 portlet 来托管小部件,而且它不是一个很难编写的适配器。

于 2010-04-09T01:29:58.480 回答