有没有与jsr 168和/或jsr 286一起使用的python库?

时间:2009-09-04 14:27:28

标签: python django jsr168 jsr286

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

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

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

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

alt text

2 个答案:

答案 0 :(得分:3)

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

JSR 168 Request/response Handling

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

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

我并不是说不能这样做 - 只是没有简单,标准的方法来做到这一点。

答案 1 :(得分:0)

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