首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Apache Geronimo 部署 Apache Pluto 門戶應用:打造純開源 Portlet 開發環境

     編輯:Java 相關知識

Apache Pluto 是 JSR 168 Portlet 規範參考實現,Apache Geronimo 是認證的開源 J2EE 應用服務器。雖 Geronimo 未預集成門戶服務,但通過 SharedLib 共享庫與部署計劃,可將 Pluto 容器與驅動器部署於 Geronimo,構建 100% 開源的門戶開發測試環境。

核心挑戰與解決方案

Pluto 門戶應用在 Tomcat 中作為子應用部署,但 Geronimo 每個 Web 應用獨立類載入器,導致 Portlet API、Pluto 容器類重複載入產生 ClassNotFoundException。解決方案:利用 Geronimo sharedlib 服務,將共用類庫載入統一類載入器。

共享 Pluto 庫與屬性檔

複製以下檔案至 Geronimo 共享目錄:

  • PLUTO_HOME/webapps/pluto/WEB-INF/classes/*.properties → GERONIMO_HOME/var/shared/classes
  • pluto-*.jar, portlet-api-1.0.jar, castor-*.jar, commons-*.jar → GERONIMO_HOME/var/shared/lib

確保 geronimo/sharedlib/1.1.1/car 服務啟動。

Pluto 部署計劃

<web-app xmlns="https://geronimo.apache.org/xml/ns/web" ...>
  <sys:environment>
    <dependencies>
      <dependency><artifactId>sharedlib</artifactId></dependency>
    </dependencies>
  </sys:environment>
  <security-realm-name>pluto-properties-file-realm</security-realm-name>
  <security>...</security>  // 映射 tomcat 角色至安全域
  <tomcat:cross-context/>  // 允許跨應用調度 Portlet
</web-app>

部署 Pluto WAR

# 從二進制版建立 WAR
jar cvf pluto.war -C PLUTO_HOME/webapps/pluto .

# 部署
deploy --user system deploy pluto.war geronimo-web-pluto.xml

開發範例門戶應用:購票系統

四大核心檔案

  1. Portlet 類:擴展 GenericPortlet,實現 doView、processAction。
  2. portlet.xml:定義 Portlet 名稱、類、支援模式、標題。
  3. web.xml:配置 PortletServlet 包裝器,映射 URL 模式,宣告 TLD。
  4. view.jsp:使用 Portlet 標籤庫渲染表單與結果。

應用部署計劃

<web-app ...>
  <sys:environment>
    <dependencies><dependency><artifactId>sharedlib</artifactId></dependency></dependencies>
  </sys:environment>
</web-app>

雙層部署流程

  1. Geronimo 層:部署 WAR 為 Web 應用(deploy buyticket.war geronimo-web-app.xml)。
  2. Pluto 層:透過 Pluto Admin Portlet (https://localhost:8080/pluto/portal/adminportletapp) 註冊 Portlet 實體、定義頁面佈局、指派 Portlet 至區域,更新 portletentityregistry.xml、pageregistry.xml。

驗證與測試

訪問 https://localhost:8080/pluto/portal,點擊應用連結進入購票頁面,選擇比賽、輸入姓名信用卡,提交顯示購票成功。

總結

Pluto 提供輕量級 JSR 168 相容測試環境,Geronimo 提供豐富企業級服務(資料庫、訊息、目錄)。兩者結合,兼得門戶標準相容性與應用服務器完整功能,是開源門戶開發的理想組合。Jetspeed、Liferay 等重量級門戶同樣可部署於 Geronimo,但 Pluto 更適合輕量開發測試。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved