2009-09-04 23 views
3

在Java門戶上,您可以讓portlet包含其他應用程序提供的數據。我們希望用Django應用程序替換現有的Java門戶,這意味着複製Java門戶顯示Portlet的能力。我們想要複製的兩個Sun規範是JSR168和JSR286。是否有任何與jsr168和/或jsr286一起使用的cpython庫?

我需要一個CPython的解決方案。不是Jython或Java。沒有任何反對這些工具,我們只是不使用它們。爲了記錄,基於Jython的Portletpy與我們的目標相反。

而且,我懷疑這個問題已經引起我們的JSR168/JSR286規範是如何工作的一部分一種誤解。我認爲是JSR168/JSR286是傳達某種獨立的應用程序之間的內容一個神祕的協議,但在Java世界中,往往通過其他方法,如SOAP來完成。相反,問題可能是這些協議只是定義如何在視圖中顯示內容對象。如果我們所要做的只是處理SOAP調用和顯示數據,那麼這個問題就沒有實際意義了。下面的是我們認爲

簡單的建築形象,我們想做的事:

alt text

+0

「提供Portlet信息」?你的意思是portlet配置文件?或者,您的意思是傳統的Java Portlet從傳統應用程序中讀取數據並呈現它?請澄清這一點。 – 2009-09-04 15:02:13

+0

傳統Java應用程序從遺留應用程序中讀取數據並呈現它。這就是爲什麼我懷疑這實際上只是提供SOAP(或其他)Web服務的問題。 – pydanny 2009-09-04 20:24:34

回答

3

我不知道你能做到這一點。從JSR 168:

JSR 168 Request/response Handling

如果我理解正確的,你想要的Django應用程序,以利用現有的「Java門戶網站/ Portlet容器」的地方圖所示。不幸的是,portlet容器和各個portlet之間的接口正在使用內存中的API調用,而不是Web服務。沒有簡單的類似於URL的界面,您可以調用Java片段來獲取大量的HTML,然後將它們合併到Django提供的頁面中。

JSR 286是一個更新,雖然它細化機制portlet之間的通信,以及來自門戶服務資源,它並沒有真正改變上述模型根本。

我不是說這件事情不能做 - 只是有做到這一點並不容易,標準的方式。

0

解決這個問題的一種方法是使用WSRP(Web Services for Remote Portlets,參見Wikipedia)生產者,將JSR 168/286轉換爲Web服務並從django中使用它們。但似乎WSRP並不是非常流行,我找不到任何Python平臺實現(儘管可能存在部分工作)。除此之外,我也對這個話題感興趣。

相關問題