熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

用導航組件來構建動態 Portal 菜單

2013-11-15 09:47:38  來源: JSP教程 

  簡介GridSphere 門戶框架
  在上一年基於 Portlet 的門戶已成為門戶服務器平台的最令人興奮的領域之一Java Specification Request (JSR)(即 portlet API)的出現將允許門戶供應商提供公共編程模型該模型允許開發人員更快地將新功能插入到門戶服務器中消費者可以輕松地使用這些功能現在許多門戶供應商支持 portlet包括 IBM WebSphereSun One Portal ServerOracle iAS 和 Jakarta Jetspeed 項目
  
  GridSphere 門戶 提供一個基於 portlet 的高級開放源代碼門戶GridSphere 是在歐盟提供基金的 GridLab 項目 下開發的提供了一個非常復雜的門戶該門戶為各種終端用戶提供高度定制的環境portlet 模型向用戶提供了一個靈活易用的接口並向門戶開發人員提供了一個模型用於創建可插入的和動態的應用程序支持下面簡要列出核心的 GridSphere 特性
  
  Portlet API 的實現與 IBM WebSphere Portal Server 或更高版本緊密兼容
  易於開發並易於與插入到 GridSphere portlet 容器中的第三方 portlet集成
  級別更高的模型用於使用可視的 bean 和 GridSphere User Interface (UI) 標簽庫構建復雜的 portlet
  靈活的基於 XML 的門戶表示描述可以輕松對其進行修改來創建自定義的門戶布局
  對基於角色的訪問控制(Role Based Access ControlRBAC)提供內置的支持RBAC 將用戶分為 guestuseradmin 和 super user
  復雜的服務模型允許創建用戶服務可以按照用戶權限限制服務方法
  通過 Hibernate for RDBMS 數據庫支持提供數據的持久性
  為 portlet 服務的服務端測試集成了 Junit/Cactus 單位測試包括生成測試報告
  GridSphere 核心 portlet 提供基本功能包括登錄注銷用戶和訪問控制管理
  由於 GridSphere portlet API 幾乎與 WebSphere portlet API 完全相同所以您應該多看看 developerWorks 文章這些文章在 參考資料 和 IBM WebSphere Portal Zone 中列出在理論上使用 IBM WebSphere Portal Server 開發本文中的示例 portlet 應該不難GridSphere API 與 JSR Portlet API 最後的規范非常類似gridSphere 的將來版本是符合 JSR
  
  GridSphere 項目
  GridSphere Web 站點提供關於開發 portlet 的附加文檔有關使用 GridSphere 的信息和其他資源的集合要獲得這些信息請加入 GridSphere 郵件列表中
  
  當前的 GridSphere 版本提供了一個門戶一個 portlet 容器和一組有用的核心 portlet包括用戶和組管理以及布局定制和 portlet 訂閱
  
  安裝 GridSphere
  從 下載最新的 GridSphere 版本並按照指示安裝該門戶前提條件是您必須在系統中安裝了 Java 技術 Ant 和 Tomcat X servlet 容器安裝了 GridSphere 後可以只啟動 Tomcat然後在 Web 浏覽器中單擊 查看該門戶初始配置允許您以root身份登錄而且不用輸入口令登錄後轉至 Administration>Users 選項卡單擊 root 用戶來編輯配置文件更改口令和其他設置包括您的登錄名和電子郵件地址登錄後您就成為 GridSphere 門戶管理員
  
  圖 GridSphere 用戶管理器 portlet
  
 educitycn/img_///jpg>

  網格服務簡介
  在提供對用戶的虛擬組織(Virtual OrganizationVO)內的計算資源和數據資源的安全統一訪問方面門戶正變得越來越復雜所以網格 portlet 必須依靠某種類型的中間件來執行這些操作開放網格服務基礎設施(Open Grid Services InfrastructureOGSI)規定如何創建網格服務而 OGSI 是整體開放網格服務體系結構(Open Grid Services ArchitectureOGSA)的一部分Globus Toolkit (GT) 提供了 OGSI 的 Java 參考實現GT 提供了強制性網格服務特性如服務調用生存期管理服務數據接口依賴底層公鑰基礎設施(Public Key InfrastructurePKI)的安全接口網格服務擴展了 Web 服務因此在實際中編程模型很相似
  
  簡而言之使用 GT 創建網格服務的步驟如下所示
  
  創建定義服務接口的 WSDL 接口可以采用工具轉換采用 Java 或 C 語言編寫現有接口以生成 WSDL
  使用 GT 工具從 WSDL 服務器接口生成客戶機和服務器存根(stub)
  填寫服務器骨架(skeleton)實現代碼
  配置服務部署描述符並部署服務到宿主容器
  幸運的是GT 與一組供我們使用的示例服務綁定在一起因此我們將集中討論使用現有服務和現有的客戶機存根代碼來訪問服務 幸運的是您下載的 Tomcat 服務器還可以充當 OGSI 網格服務宿主環境允許 GridSphere 門戶框架和 OGSA GT 示例服務一起運行
  
  下一節准備開發示例 portlet您應從 Globus Web site 下載最新的 GT 版本要構建示例並部署到 Tomcat 容器中請發出下列命令其中 $CATALINA_HOME 設置為下載 Tomcat 的位置
  
   %> ant
   %> ant samples
   %> ant Dtomcatdir=$CATALINA_HOME deployTomcat
  
  現在由於示例 portlet 需要一些 GT所以需要將 OGSA Web 應用程序的庫復制到 portlet 可以找到的 Tomcat 共享庫目錄
  
   %> cp $CATALINA_HOME/webapps/ogsa/WEBINF/lib/*jar $CATALINA_HOME/shared/lib/
  
  根據 GT Users Guide(請參閱參考資料最後一步是將下列條目添加到 $CATALINA_HOME/conf/webxml 中配置 Tomcat 以接受 WSDLGWSDL 和 XSD 文件擴展名
  
  <mimemapping>
    <extension>gwsdl</extension>
    <mimetype>text/xml</mimetype>
  </mimemapping>
  <mimemapping>
    <extension>wsdl</extension>
    <mimetype>text/xml</mimetype>
  </mimemapping>
  <mimemapping>
    <extension>xsd</extension>
    <mimetype>text/xml</mimetype>
  </mimemapping>
  
  編寫網格計數器服務 portlet
  在網格 portlet 示例中我們使用 Globus Toolkit 提供的示例 OGSI 計數器服務編寫一個簡單的加減數字的 portlet計數器服務表示為 CounterPortType它是基 GridService 接口的子類有三個方法如下面的圖 所示
  
  圖 計數器服務的 UML 圖
  
 educitycn/img_///jpg>

  add(int a) 和 subtract(int b) 方法添加或減去提供的值並返回新值getValue() 方法只返回靜態計數器值的當前結果
  
   編寫 portlet
  在計數器 portlet 示例中用戶可以輸入整數值然後單擊 AddSubtract 按鈕加上或減去計數器服務的值並顯示已更新的計數器值
  
  當第一次實例化 portlet 時init() 方法被調用向該 portlet 提供由任何後續 portlet 請求使用的所有必需的初始信息或配置信息portlet 編程模型將表示(portlet 的呈現)和邏輯(當某個動作發生時必須執行的操作)分為不同的 portlet 方法portlet 容器負責調用 doView() 呈現方法來顯示 portlet並在 portlet 收到事件(如按鈕單擊或表單提交)時負責調用 actionPerformed() 方法Portlet 可以向用戶提供幾種模式包括 EditConfigure 或 Help從而向用戶提供特定模式的接口portlet 必須提供適當的呈現方法如 doEdit 用於支持編輯模式對於熟悉 servlet 的人員而言portlet 開發非常相似只是 servlet 的 doGet 或 doPost() 方法由 actionPerformed() 和 doXXX() portlet 方法取代portlet 編程和 servlet 編程的另一個顯著差別在於 PortletResponsePortletConfig 和 PortletContext 類的使用這些類在現有的由 Java Servlet API 提供的 HttpServletRequestHttpServletResponseServletConfig 和 ServletContext 類的基礎上裝飾(也就是提供)了附加的功能
  
  最終的 portlet 如下所示
  
  清單 計數器服務 portlet
  
  public class GridCounterPortlet extends AbstractPortlet {
  
  public static final String VIEW_JSP = /jsp/ogsa/counter/view_counterjsp;
  
  // Create a URL for the counter service
  private static final String counterUrl =
  FactoryService;
  
  private LocatorType locator = null;
  private CounterPortType counter = null;
  
  public void init(PortletConfig config) throws UnavailableException {
  superinit(config);
  try {
   // Create a grid service handle from the service URL
   URL GSH = new URL(counterUrl);
  
   // Get a reference to the CounterService Factory
   OGSIServiceGridLocator gridLocator = new OGSIServiceGridLocator();
   Factory factory = gridLocatorgetFactoryPort(GSH);
   GridServiceFactory counterFactory = new GridServiceFactory(factory);
  
   // Create a new CounterService instance and get a refe
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19127.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.