第三部分 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 阅读(10141)
评论(19) 编辑 收藏 所属分类:
Java