3

在 Java 门户上,您可以拥有包含其他应用程序提供的数据的 portlet。我们想用 Django 应用程序替换我们现有的 Java 门户,这意味着复制 Java 门户显示 portlet 的能力。我们想要复制的两个 Sun 规范是 JSR168 和 JSR286。

我需要一个 cPython 解决方案。不是 Jython 或 Java。没有反对这些工具,我们只是不使用它们。作为记录,基于 Jython 的Portletpy与我们的目标相反。

另外,我怀疑这个问题是由于我们对 JSR168/JSR286 规范如何工作的误解造成的。我认为JSR168/JSR286 是一种神秘的协议,用于在不同的应用程序之间传递某种内容,但在 Java 世界中,这往往是通过 SOAP 等其他方法完成的。相反,问题可能在于这些协议只是对如何在视图中显示内容对象的定义。如果我们要做的只是处理 SOAP 调用和显示数据,那么整个问题就没有实际意义了。

下面是我们认为我们想要做的简单架构图:

替代文字

4

2 回答 2

3

我不确定你能做到这一点。来自 JSR 168:

JSR 168 请求/响应处理

如果我理解正确,您希望 Django 应用程序取代图中现有的“Java Portal/Portlet Container”。不幸的是,portlet 容器和各个 portlet 之间的接口使用内存中的 API 调用,而不是作为 Web 服务。没有简单的类似 URL 的界面,您可以在其中调用 Java 片段来获取一大块 HTML,然后将其合并到 Django 提供的页面中。

JSR 286 是一个更新,虽然它改进了 portlet 之间的通信机制以及从 portlet 提供资源的机制,但它并没有真正从根本上改变上述模型。

我并不是说它不能做到——只是没有简单、标准的方法来做到这一点。

于 2009-09-05T09:36:07.567 回答
0

解决此问题的一种方法是使用 WSRP(远程 Portlets 的 Web 服务,参见 Wikipedia)生产者,它将 JSR 168/286 转换为 Web 服务并从 django 使用它们。但似乎 WSRP 不是很流行,我找不到任何 Python 平台实现(尽管可能存在部分工作)。除此之外,我对这个话题也很感兴趣。

于 2011-03-23T12:13:58.260 回答