第三部分 Liferay Portal部署
本部分主要內(nèi)容
Portlet部署? ANT? 管理Portlet
Liferay Portal跟Tomcat5.0集成在一起,從本質(zhì)上講,liferay-portal-pro-3.6.0-tomcat.zip是一個(gè)Tomcat壓縮包,只是其中將liferay作為默認(rèn)應(yīng)用,并將跟Portlet有關(guān)的操作都交給liferay應(yīng)用處理而已。因此,Liferay Portal支持所有針對(duì)Tomcat5.0的部署方式,包括:手動(dòng)部署、Ant部署,并且支持熱部署。
手動(dòng)部署可以采用拷貝文件夾、war部署、編寫部署文件三種方式:
①、拷貝文件夾:與單純的Tomcat一樣,我們可以將{APP_HOME}\webapp目錄拷貝到{PORTAL_HOME}\webapps\下,該webapp目錄名為TestPortal。啟動(dòng)Liferay Portal(雙擊{PORTAL_HOME}\bin\startup.bat)即可。
②、war部署:或者將{APP_HOME}\webapp打包成TestPortal.war,拷貝war到{PORTAL_HOME}\webapps\下,啟動(dòng)Liferay Portal,讓Tomcat自動(dòng)解壓。在命令行模式下切換到{APP_HOME}\webapp目錄,執(zhí)行 jar cvf TestPortal.war * 。
③、編寫部署文件:
{PORTAL_HOME}\conf\Catalina\localhost目錄下,創(chuàng)建TestPortal.xml文件,內(nèi)容如下:
部署成功后,登錄Liferay Portal,可以在桌面底部的下拉列表中看到HelloWorldPortlet和HelloJSPPortlet兩個(gè)Portlet。將它們添加到桌面中。
/圖4.1-2.jpg)
/圖4.1-3.jpg)
確保之前已經(jīng)安裝Apache Ant,并正確添加ANT_HOME到系統(tǒng)環(huán)境變量。
①、拷貝之前打包的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自動(dòng)加載;
③、確保JDK1.4.2和Ant 1.6安裝成功,并配置到系統(tǒng)環(huán)境變量;
④、確保Tomcat或者其他服務(wù)器已經(jīng)正確安裝,或者Liferay Portal正常安裝。
編輯build.xml,使其只想你的應(yīng)用服務(wù)器或者Servlet容器。比如,如果你安裝JBoss+Jetty到/opt/liferay目錄,那么編輯build.xml,確保只有JBoss+Jetty部分沒有被注釋,修改app.server屬性為/opt/liferay。
Build.xml默認(rèn)是開啟JBoss+Jetty部分,本文采用的是Tomcat集成包,所以將JBoss+Jetty部分注釋掉,開始Tomcat部分。修改app.server.dir屬性,指向{PORTAL_HOME}。如下圖:
/圖4.2-1.jpg)
⑤、命令行切換到到{APP_HOME}/deploy目錄,執(zhí)行 ant deploy ,系統(tǒng)會(huì)自動(dòng)將TestPortal.war解壓,必要時(shí)修改web.xml、portlet.xml等部署文件,將解壓后的TestPortal文件夾拷貝到{PORTAL_HOME}\webapps目錄下。
啟動(dòng)Liferay Portal之前,建議先確認(rèn)修改后的web.xml、portlet.xml等部署文件是否正確。
第三節(jié)? 加入Liferay Portal自有列表
之前我們提到過,Liferay Portal集成了78個(gè)默認(rèn)的Portlet應(yīng)用。這些應(yīng)用都通過{PORTAL_HOME}\liferay\WEB-INF\目錄下的portlet.xml、liferay-portlet.xml、liferay-display.xml描述。我們只要更改這些描述文件,就可以將我們自己的應(yīng)用加入到Liferay Portal的Portlet列表中了,效果跟手動(dòng)部署和Ant自動(dòng)部署一樣。
①、拷貝{APP_HOME}\webapp目錄的內(nèi)容到{PORTAL_HOME}\liferay\html\Portlet目錄下,更改文件夾名稱為TestPortal。
②、將TestPortal\WEB-INF\classes文件夾剪切到{PORTAL_HOME}\liferay\WEB-INF目錄下。
③、將TestPortal\WEB-INF\web.xml中、的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\web.xml中。刪除TestPortal\WEB-INF\web.xml。
④、將TestPortal\WEB-INF\Portlet.xml中關(guān)于HelloWorldPortlet和HelloJSPPortlet的的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\portlet.xml中。刪除TestPortal\WEB-INF\ portlet.xml。
⑤、將TestPortal\WEB-INF\liferay-portlet.xml中關(guān)于HelloWorldPortlet和HelloJSPPortlet的的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\liferay-portlet.xml中。刪除TestPortal\WEB-INF\liferay-portlet.xml。
⑥、將TestPortal\WEB-INF\liferay-display.xml中關(guān)于HelloWorldPortlet和HelloJSPPortlet的的內(nèi)容合并到{PORTAL_HOME}\liferay\WEB-INF\liferay- display.xml中。刪除TestPortal\WEB-INF\ liferay- display.xml。
這個(gè)方法比較復(fù)雜,而且不容易擴(kuò)展和調(diào)試,通常不建議采用。
第四節(jié)? 普通Java Web應(yīng)用轉(zhuǎn)化為Portlet應(yīng)用
隨著開發(fā)的深入,我們希望能夠?qū)⒃瓉淼?/SPAN>Java Web應(yīng)用遷移到Liferay Portal,構(gòu)建真正的企業(yè)門戶。Liferay Portal靈活的二次開發(fā)機(jī)制,允許用戶將各種各樣的內(nèi)容集成到Portal平臺(tái)上來,消除信息孤島。將一個(gè)Java Web應(yīng)用轉(zhuǎn)化為Portlet應(yīng)用的步驟如下:
①、撰寫擴(kuò)展自GenericPortlet的Portlet和JSP頁面。這個(gè)Portlet可以使用PrintWriter輸出或者調(diào)用JSP頁面輸出方式。通常,如果Java Web應(yīng)用是采用MVC三層模式,那么只需要更改View層就可以了。
②、修改web.xml,增加2.6.1所述的Portlet監(jiān)聽器和Portlet標(biāo)簽庫,增加針對(duì)上步驟所寫的servlet和servlet映射。
??????
????????????? yourPortlet
????????????? com.liferay.portal.servlet.PortletServlet
?????????????
???????????????????? Portlet-class
???????????????????? full.name.of.yourPortlet
?????????????
????????????? 0
??????
??????
????????????? yourPortlet
????????????? /yourPortlet/*
??????
③、創(chuàng)建portlet.xml,增加相應(yīng)的Portlet定義信息,規(guī)范參考2.6.2。
④、創(chuàng)建liferay-portlet.xml,增加相應(yīng)的Portlet定義信息,規(guī)范參考2.6.3。
⑤、創(chuàng)建liferay-display.xml,增加相應(yīng)的Portlet類別定義信息,規(guī)范參考2.6.4。
⑥、拷貝portlet.jar和liferay-Portlet.tld到當(dāng)前應(yīng)用。其中,portlet.jar是Portlet API包,作用類似servlet-api.jar,位于{PORTAL_HOME}\common\lib\ext\liferay-portlet.tld是Liferay Portal提供的Portlet標(biāo)簽庫。
⑦、選擇適當(dāng)?shù)牟渴鸱绞剑瑢⑿薷暮蟮?/SPAN>Java Web應(yīng)用部署到Portlet平臺(tái)上。
本部分主要內(nèi)容
資源網(wǎng)站 Portlet范例 參考資料 后序
作為一個(gè)開源的門戶產(chǎn)品,Liferay Portal已經(jīng)比較成熟,有比較齊全的文檔。隨著應(yīng)用的深入,開源免費(fèi)的中文化文檔也在陸續(xù)出現(xiàn)。
Liferay Portal 官方網(wǎng)站:http://www.liferay.com?
Liferay Portal 中文網(wǎng)站: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對(duì)Portal內(nèi)置的Hello World、IFrame、Calendar、Message Boards、Mail五個(gè)Portlet進(jìn)行了比較詳細(xì)的解說。啟動(dòng)Liferay Portal后,瀏覽這里:
http://localhost/web/guest/documentation/development/Portlet
另外,Liferay Portal還在官方網(wǎng)站上提供了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標(biāo)準(zhǔn)手冊漢化整理》?????????????????????? 作者:Jini等
《Portlet應(yīng)用開發(fā)(JSR168)》??????????????????????????????????????? 作者:Terry Lee
《(原創(chuàng)翻譯)Liferay-Portal架構(gòu)》?????????????????? 作者:eamoi
②、網(wǎng)站
http://www.liferay.com
http://www.liferay.cn
?
研究Liferay Portal屬于半路出家。從開始到本文完成,倆月有余。作為一個(gè)開源的Portal產(chǎn)品,Liferay的確值得稱許,雖然還有不少bug。在本文截稿的時(shí)候,Liferay Portal V3.6.1已經(jīng)發(fā)版,新版本在拖拉Portlet、Spring遠(yuǎn)程傳輸和布局熱部署方面有比較大的提升。本文不會(huì)就此終結(jié),暫稱V1.0,作為前段工作的總結(jié)。本文的用戶策略部分參考了同事Kevin的文檔,特此感謝。
PS:寫文章真的很費(fèi)腦筋。
posted on 2005-10-21 09:26
eamoi 閱讀(10155)
評(píng)論(19) 編輯 收藏 所屬分類:
Java