第三部分 Liferay Portal部署
本部分主要內容
Portlet部署? ANT? 管理Portlet
Liferay Portal跟Tomcat5.0集成在一起,從本質上講,liferay-portal-pro-3.6.0-tomcat.zip是一個Tomcat壓縮包,只是其中將liferay作為默認應用,并將跟Portlet有關的操作都交給liferay應用處理而已。因此,Liferay Portal支持所有針對Tomcat5.0的部署方式,包括:手動部署、Ant部署,并且支持熱部署。
手動部署可以采用拷貝文件夾、war部署、編寫部署文件三種方式:
①、拷貝文件夾:與單純的Tomcat一樣,我們可以將{APP_HOME}\webapp目錄拷貝到{PORTAL_HOME}\webapps\下,該webapp目錄名為TestPortal。啟動Liferay Portal(雙擊{PORTAL_HOME}\bin\startup.bat)即可。
②、war部署:或者將{APP_HOME}\webapp打包成TestPortal.war,拷貝war到{PORTAL_HOME}\webapps\下,啟動Liferay Portal,讓Tomcat自動解壓。在命令行模式下切換到{APP_HOME}\webapp目錄,執行 jar cvf TestPortal.war * 。
③、編寫部署文件:
{PORTAL_HOME}\conf\Catalina\localhost目錄下,創建TestPortal.xml文件,內容如下:
部署成功后,登錄Liferay Portal,可以在桌面底部的下拉列表中看到HelloWorldPortlet和HelloJSPPortlet兩個Portlet。將它們添加到桌面中。


第二節? Ant自動部署
確保之前已經安裝Apache Ant,并正確添加ANT_HOME到系統環境變量。
①、拷貝之前打包的TestPortlet.war到{APP_HOME}/deploy目錄;
②、從http://prdownloads.sourceforge.net/lportal/Portlet-deployer-3.6.0.xml 下載Portlet-deployer-3.6.0.xml 到{APP_HOME}\deploy,改名為build.xml以便Ant自動加載;
③、確保JDK1.4.2和Ant 1.6安裝成功,并配置到系統環境變量;
④、確保Tomcat或者其他服務器已經正確安裝,或者Liferay Portal正常安裝。
編輯build.xml,使其只想你的應用服務器或者Servlet容器。比如,如果你安裝JBoss+Jetty到/opt/liferay目錄,那么編輯build.xml,確保只有JBoss+Jetty部分沒有被注釋,修改app.server屬性為/opt/liferay。
Build.xml默認是開啟JBoss+Jetty部分,本文采用的是Tomcat集成包,所以將JBoss+Jetty部分注釋掉,開始Tomcat部分。修改app.server.dir屬性,指向{PORTAL_HOME}。如下圖:

⑤、命令行切換到到{APP_HOME}/deploy目錄,執行 ant deploy ,系統會自動將TestPortal.war解壓,必要時修改web.xml、portlet.xml等部署文件,將解壓后的TestPortal文件夾拷貝到{PORTAL_HOME}\webapps目錄下。
啟動Liferay Portal之前,建議先確認修改后的web.xml、portlet.xml等部署文件是否正確。
第三節? 加入Liferay Portal自有列表
之前我們提到過,Liferay Portal集成了78個默認的Portlet應用。這些應用都通過{PORTAL_HOME}\liferay\WEB-INF\目錄下的portlet.xml、liferay-portlet.xml、liferay-display.xml描述。我們只要更改這些描述文件,就可以將我們自己的應用加入到Liferay Portal的Portlet列表中了,效果跟手動部署和Ant自動部署一樣。
①、拷貝{APP_HOME}\webapp目錄的內容到{PORTAL_HOME}\liferay\html\Portlet目錄下,更改文件夾名稱為TestPortal。
②、將TestPortal\WEB-INF\classes文件夾剪切到{PORTAL_HOME}\liferay\WEB-INF目錄下。
③、將TestPortal\WEB-INF\web.xml中、的內容合并到{PORTAL_HOME}\liferay\WEB-INF\web.xml中。刪除TestPortal\WEB-INF\web.xml。
④、將TestPortal\WEB-INF\Portlet.xml中關于HelloWorldPortlet和HelloJSPPortlet的的內容合并到{PORTAL_HOME}\liferay\WEB-INF\portlet.xml中。刪除TestPortal\WEB-INF\ portlet.xml。
⑤、將TestPortal\WEB-INF\liferay-portlet.xml中關于HelloWorldPortlet和HelloJSPPortlet的的內容合并到{PORTAL_HOME}\liferay\WEB-INF\liferay-portlet.xml中。刪除TestPortal\WEB-INF\liferay-portlet.xml。
⑥、將TestPortal\WEB-INF\liferay-display.xml中關于HelloWorldPortlet和HelloJSPPortlet的的內容合并到{PORTAL_HOME}\liferay\WEB-INF\liferay- display.xml中。刪除TestPortal\WEB-INF\ liferay- display.xml。
這個方法比較復雜,而且不容易擴展和調試,通常不建議采用。
第四節? 普通Java Web應用轉化為Portlet應用
隨著開發的深入,我們希望能夠將原來的Java Web應用遷移到Liferay Portal,構建真正的企業門戶。Liferay Portal靈活的二次開發機制,允許用戶將各種各樣的內容集成到Portal平臺上來,消除信息孤島。將一個Java Web應用轉化為Portlet應用的步驟如下:
①、撰寫擴展自GenericPortlet的Portlet和JSP頁面。這個Portlet可以使用PrintWriter輸出或者調用JSP頁面輸出方式。通常,如果Java Web應用是采用MVC三層模式,那么只需要更改View層就可以了。
②、修改web.xml,增加2.6.1所述的Portlet監聽器和Portlet標簽庫,增加針對上步驟所寫的servlet和servlet映射。
??????
????????????? yourPortlet
????????????? com.liferay.portal.servlet.PortletServlet
?????????????
???????????????????? Portlet-class
???????????????????? full.name.of.yourPortlet
?????????????
????????????? 0
??????
??????
????????????? yourPortlet
????????????? /yourPortlet/*
??????
③、創建portlet.xml,增加相應的Portlet定義信息,規范參考2.6.2。
④、創建liferay-portlet.xml,增加相應的Portlet定義信息,規范參考2.6.3。
⑤、創建liferay-display.xml,增加相應的Portlet類別定義信息,規范參考2.6.4。
⑥、拷貝portlet.jar和liferay-Portlet.tld到當前應用。其中,portlet.jar是Portlet API包,作用類似servlet-api.jar,位于{PORTAL_HOME}\common\lib\ext\liferay-portlet.tld是Liferay Portal提供的Portlet標簽庫。
⑦、選擇適當的部署方式,將修改后的Java Web應用部署到Portlet平臺上。
本部分主要內容
資源網站 Portlet范例 參考資料 后序
作為一個開源的門戶產品,Liferay Portal已經比較成熟,有比較齊全的文檔。隨著應用的深入,開源免費的中文化文檔也在陸續出現。
Liferay Portal 官方網站:http://www.liferay.com?
Liferay Portal 中文網站:http://www.liferay.cn?
Liferay Portal 論壇:http://forums.liferay.com?
Tracker : http://support.liferay.com?
郵件列表:http://sourceforge.net/mailarchive/forum.php?forum=lportal-development?
JavaLobby專題:http://www.javalobby.org/articles/liferay/
OSQS專題:http://cstsolaris.cst.nait.ab.ca/ist410/gerry/liferay/index.jsp?
Leonardsoko1專題:http://www.leonardsokol.com/liferay/
Developer專題:http://www.developer.com/java/web/article.php/10935_3372881_1
Liferay Portal隨程序包提供了豐富的documentation,其中的Portlet Examples對Portal內置的Hello World、IFrame、Calendar、Message Boards、Mail五個Portlet進行了比較詳細的解說。啟動Liferay Portal后,瀏覽這里:
http://localhost/web/guest/documentation/development/Portlet
另外,Liferay Portal還在官方網站上提供了Sample Layout Template、Sample Portlet、Sample Themes供下載。其中,Sample Portlet包括Sample JSP Portlet、Sample Struts Portlet、Sample JSF SUN Portlet、Sample JSF MyFaces Portlet。瀏覽這里:
http://localhost/web/guest/downloads/sample_Portlet
?
①、文檔
《JSR168 PORLET標準手冊漢化整理》?????????????????????? 作者:Jini等
《Portlet應用開發(JSR168)》??????????????????????????????????????? 作者:Terry Lee
《(原創翻譯)Liferay-Portal架構》?????????????????? 作者:eamoi
②、網站
http://www.liferay.com
http://www.liferay.cn
?
研究Liferay Portal屬于半路出家。從開始到本文完成,倆月有余。作為一個開源的Portal產品,Liferay的確值得稱許,雖然還有不少bug。在本文截稿的時候,Liferay Portal V3.6.1已經發版,新版本在拖拉Portlet、Spring遠程傳輸和布局熱部署方面有比較大的提升。本文不會就此終結,暫稱V1.0,作為前段工作的總結。本文的用戶策略部分參考了同事Kevin的文檔,特此感謝。
PS:寫文章真的很費腦筋。
posted on 2005-10-21 09:26
eamoi 閱讀(10155)
評論(19) 編輯 收藏 所屬分類:
Java