Liferay Portlet指南(环境搭建)
- 格式:doc
- 大小:549.00 KB
- 文档页数:32
原作者网址:/category/technology-share/li feray/page/2/Liferay是什么?2012年06月11日⁄ Liferay⁄ 评论数1⁄ 被围观497 views+关于LiferayLiferay是一个开源公司,我们一般谈Liferay是指的Liferay Portal。
Liferay Portal始创于2000年的洛杉机,当时是一个非营利性组织。
于2004年建立Liferay公司,今天Liferay的办事处和子公司遍及北美、德国、中国、西班牙和印度等,在全球30多个国家有建立合作伙伴帮助其扩展全球业务。
官方网站(/)Liferay于2011年第三季度发布Liferay 6.1版本,在6.1版本中添加了lifray同步实现文件共享、改善文档库、界面调整、表单和工作流设计器、增强移动设备支持等等诸多功能的完善与修改。
EE版和SE版EE版是企业版,SE版是社区版。
关于企业版和社区版的差异,在Liferay的官方网站上有详细的介绍。
简单的说就是企业版是更稳定、更可靠、有服务支持、收费的版本;社区版是免费的、没有服务支持的、代码是最新的、对稳定必及可靠性不做提供保障的。
社区版可以在Liferay的官方网站上下载到源码和编译后的运行环境等,企业版可以有30天的试用,需要付费后获取源码。
Liferay的市场地位下面对于Liferay的市场地位的评价数据来源于Gartner每年关于垂直门户产品魔力四象限的比较,数据区间为2008年到2011年的。
从以上的数据中可以看到Liferay在近几年的市场地位是逐渐上升,虽然还比不上微软、IBM、Oracle等。
但从2010年开始gartner已经将Liferay列为市场领导者(leaders)的角色里面。
Gartner对于门户产品领导者的定位如下:在此魔力象限的领导者有能力提供全方位的各种门户部署方案,并且已经证明在相当长的时间内能够提供和用户需求相一致的产品,领导者能在为客户提供满意产品的同时提供重要的产品创新,并能够将产品销售给各行业的新客户。
From Elias的个人主页Develop: Liferay开发环境配置说明文档(中国科学院研究生院网络中心)On this page... (hide)1. 文档说明2. 基本环境配置2.1 准备必须的软件,并进行环境参数配置2.2 下载LifeRay程序包2.3 安装和配置基本的Eclipse运行环境3. 基于Tomcat开发Portlet3.1 配置扩展开发环境3.2 添加插件支持3.3 配置数据库和执行Liferay3.4 完成一个最简单的JSP的Portlet4. 改进和调试Liferay自身代码4.1 安装Orion服务器4.2 在Eclipse中配置Orion4.3 修改Orion配置参数4.4 修改Liferay的配置文件4.5 向Orion上部署Liferay系统4.6 另一种调试Portlet组件的方法1. 文档说明本文基于Tomcat开发Portlet的部分根据LifeRay官方的Quick Start文档中“Writing a simple JSP Portlet”章节的内容试验精简而成,依据的文档版本是RC1,日期2006-06-15。
对Liferay自身代码的编译、调试环境则参考了原Liferay 3.6.1版本官方文档的“User Guide”对应章节。
因为本文档对说明文字进行了一些简化,以及官方文档有可能在您读到本文时又有更新,因此仍建议参考官方文档原文,以明确一些细节的意义。
但官方文档也存在一些错误,这里书写的内容对本文指明的各软件的特定版本号是已经试验成功的,因此也建议在读官方文档的时候同时参考本文。
按照本文的步骤完成后,能够建立一个在Windows下的Eclipse工具中开发兼容LifeRay的Portlet组件的基本环境,或者建立一个在Windows下的Eclipse工具对Liferay自身的源代码进行编译、调试、改进的环境。
按照你的需要,不一定要同时配置这两种环境,具体说明可参照对应章节开头的说明文字。
liferay开发文档别人我来让大家下部门: xxx时间: xxx制作人:xxx整理范文,仅供参考,可下载自行修改这个是别人地,但是是要收财富值地,哈哈,我来给大家免费纯属个人理解,不确保全部正确,仅供新手参考.一、Liferay地安装与使用目前liferay地最新版本是liferay portal 6.0.5,下载地址:/projects/lportal/ ;这里下载地是liferay与tomcat6绑定地版本,而且自带jdk1.6,下载完后需要做以下几个步骤便可轻松跑起来liferay了.1、下载完后最好找个文件夹专门用来做liferay地工作空间,因为以后好多文件下载,这样方便管理.首先解压liferay-portal-tomcat-6.0.5.zip,解压后其目录结构如下:b5E2RGbCAPliferay-portal-tomcat-6.0.5/liferay-portal-6.0.5/data/目录下放是liferay自带地例子<7coogs)、数据库hsql地脚本及lucene产生地文档.liferay-portal-tomcat-6.0.5/liferay-portal-6.0.5/tomcat-6.0.26/这个就是tomcat地home目录了,里面地结构和一般地tomcat是一样地,在webapps目录中放地就是liferay portal 地应用war包了,其中ROOT是最重要地,你会发现WEB-INF/classes中没有class文件,因为它们被打成jar包放在WEB-INF/lib下了,这样效果也一样.2、liferay中自带hsql数据库,如果你要改其他数据库地话可以在liferay-portal-tomcat-6.0.5/liferay-portal-6.0.5/tomcat-6.0.26/webapps/ROOT/WEB-INF/classes下新建一个portal-ext.properties文件,内容如下(这里用mysql当作例子>: # # MySQL # jdbc.default.driverClassName=com.mysq l.jdbc.Driver jdbc.default.url=jdbc:mysql://localhos t/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false ername=roo t jdbc.default.password=1234其他数据库配置可以参见:/community/wiki/-/wiki/Main/Database+Portal+Properties上面地配置仅仅只是liferay 6.0 之后地方法,与之前地版本还是有不同地,具体地各版本地数据库配置可以参考:/community/wiki/-/wiki/Main/Database+Configuration3、在liferay-portal-tomcat-6.0.5/liferay-portal-6.0.5/tomcat-6.0.26/bin 目录中执行startup.bat,此时就已经启动tomcat了,一般会启动5分钟左右.启动完毕后会自动在浏览器中打开http://localhost:8080,这样你就可以开始访问liferay portal 了.p1EanqFDPw4、登录liferay Portal在打开地浏览器中,点击右上角地login,输入帐号和密码.在这里地输入地帐号密码为email:bruno@password:brunoliferay从5.2之后地版本中都带有一个7cogs.inc公司地示例数据库,所以这里地管理员帐号密码如上.如果删除示例数据库,则账号密码如下:DXDiTa9E3demail:test@password:test5、删除7cogs例子a、在tomcat/webapps下面找到目录sevencogs-hook这个目录,删除掉b、在删除与tomcat平级地data/hsql目录c、重启tomcat,这时地管理员帐号就变为test@/test6、liferay启动地时候日志信息是乱码怎么办?打开liferay-portal-tomcat-6.0.5/liferay-portal-6.0.5/tomcat-6.0.26/conf/ 目录下地logging.properties文件,加上一句java.util.logging.ConsoleHandler.encoding = gbk ,重新启动就行了.RTCrpUDGiT二、搭建liferay地开发环境1、开发方式介绍从6.0 开始提供可eclipse可视化地插件之后就更加地友好,开发一个portlet或者一个hook都只需点点鼠标即可完成,这在官方wiki里面可以找到视频教程.在准备开发之前需要先了解“portlet规范”,然后再看liferay 6 地开发指南,之后再看下面地内容.5PCzVD7HxALiferay 6开发文档下载地址:/view/d8ab5bbd960590c69ec37682.htm ljLBHrnAILgPortlet 规范介绍文档下载地址:/view/e72aeefafab069dc50220181.htm lxHAQX74J0X首先需要下载liferay地sdk<开发环境包)、liferay ide<开发环境地插件).sdk地下载地址:/projects/lportal/files/LiferayPor tal/6.0.5/liferay-plugins-sdk-6.0.5.zip/downloadliferay ide下载地址:/projects/lportal/files/LiferayIDE /1.1.0/liferay-ide-eclipse-updatesite-1.1.0.zip/downloadLDAYtRyKfE安装此插件地时候eclipse要用3.6版本地.在自己地工作目录解压sdk包liferay-plugins-sdk-6.0.5.zip、在eclipse中安装liferay ide.解压sdk后看到其目录结构如下:有ext、hook、portlet等目录中放地是ext、hook、portlet以插件形式开发地文件.要修改一下sdk目录下build.properties文件中运行环境目录,此处使用tomcat,所以修改大约76行修改为类似下地目录地址:app.server.dir=D:/liferay/liferay-portal-6.0.3/tomcat-6.0.26以portlet为例子,里面有build.xml、build-common-portlet.xml、create.bat、create.sh、portlet.zip这5个文件,不用说build.xml、build-common-portlet.xml是ant文件应该都知道,create脚本就是新建一个插件工程,工程目录结构在portlet.zip中.但是现在有了liferay ide后就不用执行脚本创建了,而是直接用eclipse.Zzz6ZB2Ltk这里有liferay ide 地使用方法:/community/wiki/-/wiki/Main/Liferay+IDE+1.1+New+and+Noteworthy.在使用liferay ide地过程中需要配置sdk和与绑定tomcat地目录,这里就不做详细介绍了,就是路径地问题.装完ide后地图示:3、搭建完环境后新建一个liferay plugin project,可以new portlet、Hook<扩展环境)、ext<扩展环境)、theme<主题)、layout<布局)类型地。
Liferay Portlet指南(环境搭建)Liferay Portlet指南一、Liferay扩展环境搭建环境设置一、JDK 1.6.0, JDK 1.5.0 or JDK 1.4.2 1. 点击下一步安装2. 设置环境变量“JAVA_HOME”指向jikes的目录3. 增加“%JAVA_HOME%\\bin”到Path环境变量中二、Jikes 1.22 or Jikes 1.21 1. 解压缩安装包2. 设置环境变量“JIKES_HOME”指向jikes的目录3. 增加“%JIKES_HOME%\\bin”到Path环境变量中三、Ant 1.7.01. 解压缩安装包2. 设置环境变量“ANT_HOME”指向ant的目录3. 增加“%ANT _HOME%\\bin”到Path环境变量中配置扩展环境本指南所使用的liferay版本为4.2.2Step1:解压源代码将liferay源代码解压到任意目录,我们称之为${PORTAL_HOME}。
本指南中,将liferay源代码存放在目录${PORTAL_HOME}\\src下。
Step2:修改release配置文件在${PORTAL_HOME}\\src目录下找到文件release.properties,将其另存,命名为“release.${username}.properties”。
其中${username}就是当前Windows登陆的用户名,可以通过“开始菜单-》运行-》cmd.exe”后显示的默认路径看到,跟在“Documents and Settings”字样后面的就是当前登陆的用户名。
比如配置文件的名称是release.administrator.properties 。
文件的内容如下:修改lp.source.dir属性,来指定liferay源代码所在目录lp.source.dir=${PORTAL_HOME}/src修改lp.ext.dir属性,来指定liferay扩展环境放置目录lp.ext.dir=${PORTAL_HOME}/ext当然可以在源文件release.properties上修改,不过不建议这样做。
配置liferay开发环境说明1.准备文件(假设J2EE环境已配置好)ant部署工具:apache-ant-1.7.0-bin.zip(下面2中用)JIKES工具包:jikes-1.22-1.windows.zip(下面2中用)liferay原码包:liferay-portal-src-4.1.3.zip(下面2中用)liferay运行环境包:liferay-portal-tomcat-jdk5-4.1.3.zip(下面6中用)2.建立目录,并解压以上文件(1).在目录D:\liferay下建立目录文件夹ext和portal,apache-ant-1.7.0 jikes-1.22(2).将“ant部署工具”和“JIKES工具包”解到对应的apache-ant-1.7.0 jikes-1.22目录下(3).将原码文件liferay-portal-src-4.1.3.zip解到portal3.配置环境变量(1).ANT_HOME=D:\D:\liferay\apache-ant-1.7.0(2).JIKES_HOME=D:\liferay\jikes-1.22(3).Path=%JAVA_HOME%\bin;%JIKES_HOME%\bin;%ANT_HOME%\bin4.编译原码文件(1)在运行中用cmd进入D:\liferay\portal目录,执行ant start来编译原码(2)然后在此目录下建release.windows登录用户名.properties文件,并打开该文件写入lp.ext.dir=D:/liferay/ext设置信息后保存(3)然后在当前目录下执行命令:ant build-ext,此时在D:\liferay\ext 目录下生成文件5.进入D:\liferay\ext目录配置(1)将文件app.server.properties名称改为app.server.windows登录用户名.properties,并修改文件中的内容app.server.type=tomcat(2)将文件build.properties名称改为build.windows登录用户名.properties ,并修改内容jsp.precompile=on6.建立tomcat运行环境,并生成部署文件(1)将liferay-portal-tomcat-jdk5-4.1.3.zip运行包解压倒目录D:\liferay\ext\servers\tomcat下,准备好发布运行环境(2)在目录D:\liferay\ext\ext-web下执行ant(3)然后在D:\liferay\ext\ext-ejb下执行ant deploy,此时在该目录生成文件ext-ejb.jar包(4)将该ext-ejb.jar包拷贝到D:\liferay\ext\servers\ tomcat\ webapps\ROOT\WEB-INF\lib下,如存在就覆盖。
准备Liferay版本:6.0.4开发模式:普通插件模式(非Ext)Struts版本:2.1.8.1环境使用到的Struts2相关jar包如下:antlr-2.7.2.jarcommons-fileupload-1.2.1.jar freemarker-2.3.15.jarognl-2.7.3.jarstruts2-core-2.1.8.1.jarstruts2-portlet-plugin-2.1.8.1.jar xwork-core-2.1.6.jar工程目录如下:参考内容参考Struts2自带的portlet示例struts2-portlet-2.1.8.1.war,在Struts 解压包下面的apps目录里面,这个示例是基于Pluto(/pluto/)Apache的Portal实现,但开发的都是portlet,所以可以参考这个。
开发示例代码portlet.xmlXml代码1.<portlet>2.<portlet-name>StrutsPortlet</portlet-name>3.<display-name>Struts Test Portlet</display-name>4.5.<portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class>6.7. <!--这里的name名字不能修改,value对应于Struts.xml文件里面的配置-->8.<init-param>9.<name>viewNamespace</name>10. <value>/strutsDemoView</value>11. </init-param>12.13. <!-- 对应Struts.xml中设置的默认action -->14. <init-param>15. <name>defaultViewAction</name>16. <value>index</value>17. </init-param>18.19. <init-param>20. <name>editNamespace</name>21. <value>/strutsDemoEdit</value>22. </init-param>23.24. <init-param>25. <name>defaultEditAction</name>26. <value>index</value>27. </init-param>28.29. <expiration-cache>0</expiration-cache>30.31. <!-- 支持view、edit,和前面的portlet一样 -->32. <supports>33. <mime-type>text/html</mime-type>34. <portlet-mode>view</portlet-mode>35. <portlet-mode>edit</portlet-mode>36. </supports>37.38. <portlet-info>39. <title>My StrutsPortlet portlet</title>40. <short-title>SP</short-title>41. <keywords>struts,portlet</keywords>42. </portlet-info>43. </portlet>liferay-portlet.xmlXml代码1.<portlet>2.<portlet-name>StrutsPortlet</portlet-name>3.<instanceable>true</instanceable>4.</portlet>liferay-display.xmlXml代码1.<portlet id="StrutsPortlet"></portlet>Struts.xmlXml代码1.<?xml version="1.0"encoding="UTF-8"?>2.<!DOCTYPE struts PUBLIC3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"4. "/dtds/struts-2.0.dtd">5.6.<struts>7.<package name="strutsDemoView"namespace="/strutsDemoView"extends="struts-portlet-default">8.<action name="index"method="view"class="org.huqiwen.study.StrutsDemo">9.<result name="success">/strutsDemoView/view.jsp</result>10. </action>11. <action name="portletView"method="portletView"class="org.huqiwen.study.StrutsDemo">12. <result name="view">/strutsDemoView/viewMode.jsp</result>13. </action>14. </package>15.16.17. <package name="strutsDemoEdit"namespace="/strutsDemoEdit"extends="struts-portlet-default">18. <action name="index"method="edit"class="org.huqiwen.study.StrutsDemo">19. <result name="success">/strutsDemoEdit/edit.jsp</result>20. </action>21. <action name="portleEdit"method="portletEdit"class="org.huqiwen.study.StrutsDemo">22. <result name="edit">/strutsDemoEdit/editMode.jsp</result>23. </action>24. </package>25.</struts>java文件Java代码1.import com.opensymphony.xwork2.ActionSupport;2.3.public class StrutsDemo extends ActionSupport {4.5. private static final long serialVersionUID = 1L;6.7. private String message;8.9. public String getMessage(){10. return message;11. }12. public void setMessage(String message){13. this.message=message;14. }15. public String view() throws Exception {16. message = "hello Struts2 View Portlet!";17. return SUCCESS;18. }19. public String portletView(){20. return "view";21. }22. public String edit() throws Exception {23. message = "hello Struts2 Edit Portlet!";24. return SUCCESS;25. }26. public String portletEdit(){27. return "edit";28. }29.}strutsDemoView/view.jspHtml代码1.<%@ page contentType="text/html;charset=utf-8"%>2.<%@ taglib prefix="s"uri="/struts-tags"%>3.<h2><s:property value="message"/></h2>4.<s:form action="portletView!portletView.action"method="post"namespace="view">5.<s:textfield label="名字"key="message"></s:textfield>6.<s:submit value="提交"></s:submit>7.</s:form>其他的JSP不写了,和普通的Strtus2开发一样。
LiferayPortal6.0开发环境搭建
Liferay Portal 6.0开发环境搭建
2011-10-14 by 费利明开发工具
1.集成Liferay Portal IDE插件的Eclipse,在线插件安装地址:
/doc/5013765955.html
/tools/ide/eclipse/indigo/stable/
2.Liferay-plugins-sdk插件包,开发portlet、theme、layout、ext、hook等插件项目,下载
地址:/doc/5013765955.html
/zh/downloads/liferay-portal/available-releases
3.Liferay Portal RunTime Server,本环境使用Tomcat,官方有绑定好的,下载地址:/doc/5013765955.html
/zh/downloads/liferay-portal/available-releases
搭建步骤
1.打开集成Liferay Portal IDE的Eclipse
右键new项目有Liferay视图则插件安装成功
2.配置Liferay-plugins-sdk
3.配置Liferay Portal RunTime Server(new Server的时候配置也可以)
指向从官网下载的T omcat,做为运行时服务器
4.New一个Server,指向上面配置的RunTime Server,T omcat 右键new Server
5.启动Tomcat,浏览器访问http://localhost:8080,ok!
6.之后可以在Eclipse下开发各种Liferay Project插件项目了。
Liferay Portal二次开发指南(1)Liferay Portal二次开发指南(1)第一部分Liferay Portal架构解析本部分主要内容Portal服务器Portal容器Portlet 第一章 Liferay Portal作为一个开源Portal产品,Liferay Portal提供对多个独立系统的内容集成,帮助多个组织实现更有效的合作。
与其他商业的Portal产品相比,Liferay Portal有着一系列的优良特性,而且不需要付费。
第一节Portal规范随着Portal的兴起,越来越多的公司开始涉足Portal产品开发,并组建各自的Portal组件和基于其的产品,比如IBM、BEA、MicroSoft、SAP、Apache等。
各个厂商的接口互不兼容,给软件开发商以及开发人员带来诸多不便。
1.1.1 JSR168为此,JCP组织发布了JSR168(Java Specification Request),Portlet Specification V1.0,用来提供不同的Portal和Portlet之间的互通性。
只要开发的Portlet遵循JSR168,则就可以在所有遵循JSR168的Portal上部署运行。
JSR168中定义了Portal的实现规范和接口,并对理想的Portlet进行了详细的规划和描述。
1.1.2 WSRPWSRP是OASIS Web Service for Remote Portlet的缩写。
WSRP是Web Service的一种新的商业应用,一种新的标准,主要用来简化Portal对于各种资源或者程序整合的复杂度,可以避免编程带来的整合麻烦和问题。
而且Portal管理员可以从海量的WSRP服务中选择需要的功能用以整合到目前所用的Portal中。
它有三种角色:①、生产者 提供Portlet②、消费者→使用Portlet③、终端用户→最终用户它的特点在于生产者将消费者所需要的信息通过WSRP返回给消费者,这些信息是相对标记片断,例如HTML、XHTML等,可以直接嵌入用户的页面中,而不用像Web Service一样开发用户端接口。
Liferay研究(一):初步在新Tomcat下部署从现在开始,会把我最近在研究的开源Portal Liferay一些心得贴出来。
研究Liferay版本:Liferay Professional 4.0.0柯自聪兄弟写过一系列的Liferay Portal开发文章,参考/ea moi/。
所以基础性内容,本文不再细说,可参考柯自聪的文章或Blog。
(一)部署Liferay PortletLiferay简单部署一个portlet并不是很复杂,通过WEB-INF目录下的portlet.xm l、liferay-portlet.xml、liferay-display.xml描述即可。
描述portlet.xml portlet.xml用来定义Portlet的诸如部署名称、初始化参数、支持模式、re source bundle等普通的初始化信息,包括:portlet-name、display-name、portlet-class、init-param、expiration-cathe、supports、portlet-info、security-role-ref 等等。
其正式的规范请参考:/xml/ns/Portlet/Portlet-app_1_0. xsdliferay-portlet.xml 定义Portlet默认可用的用户组、默认模板、是否支持多个实例等,规范由/dtd/liferay-Portlet-app_3_5_0.dtdliferay-display.xml 定义Portlet默认的所属类别。
Liferay Portal对Portlet实行按类别管理和划分用户权限。
Liferay是基于Struts Template页面模版技术来实现页面的,所以Liferay默认提供了com.liferay.portlet.StrutsPortlet这个Portlet Class来完成Portlet处理的;当然为了简单对普通jsp页面的处理,Liferay也提供了com.liferay.portlet.JSPPortlet等其他Portlet Class。
Liferay 6.0开发指南1. 介绍1、已有的应用集成方法:将应用重写为一个Portlet创建一个简单的Portlet整合应用(一般使用Web Service),可以使用iframe或http 代理(可以使用Liferay's WebProxy portlet)。
已有的应用要像部署门户插件一样,把WAR文件部署到应用服务器里,可以使用控制面板或直接复制的方式完成。
Liferay可以自动创建一个Portlet通过iframe集成已有应用。
2、自定义主题风格(Themes)3、自定义布局模板(Layout Templates)4、自定义或扩展门户功能:Hook plugins)Hook plugins可以用来扩展Liferay的核心功能。
5、高级扩展方式:Ext plugins扩展插件可以允许开发人员修改Liferay的核心部分,可以修改任何一个类。
扩展插件部署之后需要重新启动应用服务器。
Liferay 6.0之后用Ext plugins的开发方式替换了原来的Ext Environment开发方式,这样可以简化部署。
之前的扩展环境可以转换为一个独立的插件。
2. 插件开发工具包(THE PLUGINS SDK)2.1 安装Liferay1、下载Liferay Portal bundled with Tomcat;/downloads2、下载Plugins SDK;3、删除liferay-portal-[version]/tomcat-[tomcatversion]/webapps 除ROOT和tunnel-web目录的其他所有文件夹。
4、打开liferayportal-[version]/tomcat-[tomcat-version]/bin目录,运行startup.bat,启动Liferay。
5、http://localhost:8080,默认帐号/密码:test@/test。
6、设置环境变量ANT_HOME,将$ANT_HOME/bin加入到PATH环境变量中。
Liferay Portlet指南一、Liferay扩展环境搭建环境设置一、JDK 1.6.0, JDK 1.5.0 or JDK 1.4.21. 点击下一步安装2. 设置环境变量“JA V A_HOME”指向jikes的目录3. 增加“%JA V A_HOME%\bin”到Path环境变量中二、Jikes 1.22 or Jikes 1.211. 解压缩安装包2. 设置环境变量“JIKES_HOME”指向jikes的目录3. 增加“%JIKES_HOME%\bin”到Path环境变量中三、Ant 1.7.01. 解压缩安装包2. 设置环境变量“ANT_HOME”指向ant的目录3. 增加“%ANT _HOME%\bin”到Path环境变量中配置扩展环境本指南所使用的liferay版本为4.2.2Step1:解压源代码将liferay源代码解压到任意目录,我们称之为${PORTAL_HOME}。
本指南中,将liferay 源代码存放在目录${PORTAL_HOME}\src下。
Step2:修改release配置文件在${PORTAL_HOME}\src目录下找到文件release.properties,将其另存,命名为“release.${username}.properties”。
其中${username}就是当前Windows登陆的用户名,可以通过“开始菜单-》运行-》cmd.exe”后显示的默认路径看到,跟在“Documents and Settings”字样后面的就是当前登陆的用户名。
比如配置文件的名称是release.administrator.properties 。
文件的内容如下:修改lp.source.dir属性,来指定liferay源代码所在目录lp.source.dir=${PORTAL_HOME}/src修改lp.ext.dir属性,来指定liferay扩展环境放置目录lp.ext.dir=${PORTAL_HOME}/ext当然可以在源文件release.properties上修改,不过不建议这样做。
Step3:生成扩展环境“开始菜单-》运行-》cmd.exe”,启动命令提示符窗口,进入到${PORTAL_HOME}\src 目录下(因为执行ant命令所需的build.xml在此文件夹下)。
执行以下ant命令,生成扩展环境。
$ ant start$ ant build-extStep4:安装liferay tomcat将liferay tomca解压到任意目录,我们称之为${CATALINA_HOME}。
本指南中,将liferay tomca存放在目录${PORTAL_HOME}\servers\tomcat下。
Step5:修改app配置文件在${PORTAL_HOME}/ext 目录下找到文件app.server.properties,将其另存,命名为“app.server.{username}.properties”。
比如配置文件是app.server.administrator.properties。
用来指向需要发布的liferay tomcat服务器。
修改内容如下:修改app.server.parent.dir属性,来指定服务器的父目录。
app.server.parent.dir=D:/servers/tomcat修改app.server.tomcat.dir属性,来指定服务器所在目录。
app.server.tomcat.dir=${app.server.parent.dir}/tomcat-5.5.17Step6:部署扩展环境“开始菜单-》运行-》cmd.exe”,启动命令提示符窗口,进入到${PORTAL_HOME}\src 目录下(因为执行ant命令所需的build.xml在此文件夹下)。
执行以下ant命令,部署环境。
$ ant deployStep7:建立数据库在${PORTAL_HOME}\src\sql\create目录下找到与你使用数据相对应的.sql文件。
执行该.sql脚本建立数据库。
脚本默认数据名为“lportal”。
Step8:拷贝JDBC Driver将与你使用的数据库相应的JDBC Driver,拷贝到目录${CATALINA_HOME}\common\lib\ext下。
Step9:修改数据库配置文件在${CATALINA_HOME}\conf\Catalina\localhost下,找到文件ROOT.xml。
修改名字为“jdbc/LiferayPool”的<Resource>元素的值,将其设置为与你所使用数据库相应的配置信息。
示例代码如下:<Resourcename="jdbc/LiferayPool"auth="Container"type="javax.sql.DataSource"driverClassName="net.sourceforge.jtds.jdbc.Driver"url="jdbc:jtds:sqlserver://localhost:1433/lportal"username="sa"password="1234"maxActive="20"/>Step10:测试进入到目录${CATALINA_HOME}\bin下,点击“startup.bat”启动Liferay Tomcat服务器。
打开浏览器,访问http://localhost:8080。
点击“Sign In”,利用用户名:test@、密码:test,进入系统。
如果可以正常登录,即环境配置成功。
其他:liferay默认使用的jikes编译器来对Java文件进行编译。
如果想使用JDK来进行编译,就需要修改配置文件。
在ext环境的跟目录下,有个build.properties文件。
将其中piler的值修改为modern。
修改前:piler=jikes修改后:piler=modern转帖请注明出处。
我将陆续发布JSPPortlet、StrutsPortlet、PreferencePortlet、SSHPortlet,开发指南。
本文来自CSDN博客,转载请标明出处:/Pointer_v/archive/2008/10/08/3033181.aspx到这二、Liferay扩展环境目录介绍扩展环境的目录结构如下图:1、/ext-ejb/src在基于二次扩展环境,进行功能开发时。
自己编写的Java代码都放在这个目录下。
2、/ext/downloads存放Ant脚本中可能用到的下载文件。
3、/ext/ext-ear主要存放liferay编译生成的war包及jar等文件.4、/ext/ext-ejb该包是扩展开发环境中最为重要的包之一,开发过程中新开发的所有编译过的.class以及主要的配置文件均存放该包中。
代码结构如下图:其中最为常用的配置文件是:Language-ext.properties:Portlet国际化配置文件。
(具体用法在后续章节中描述)ext-hbm.xml:Hibernate配置文件, 所有对象映射信息都存放于该文件中。
(具体用法在后续章节中描述)ext-spring-professional.xml:Spring配置文件,存放Spring相关配置,目前不会用到ext-spring-enterprise.xml文件。
(具体用法在后续章节中描述)5、/ext/ext-lib存放额外的库文件6、/ext/ext-web当基于liferay二次开发环境进行功能开发时,该目录存放JSP,HTML,图片等WEB相关文件。
该目录是扩展开发环境中最重要的目录之一。
代码结构如下图所示:该目录中也存放了大量的配置文件,其中最为常用的配置文件有:portlet-ext.xml、liferay-portlet-ext.xml、liferay-display.xml:Portlet的配置文件,如果要增加一个Portlet,这三个配置文件都要修改。
(具体用法在后续章节中描述)struts-config.xml、titles-defs.xml:如果要配置Struts Portlet就要用到这两个配置文件。
(具体用法在后续章节中描述)7、/ext/ext-web/tmp文件夹:在部署过程中,ant脚本先解压/ext/ext-ear/modules/portal-web.war 文件,以及拷贝/ext/ext-web/docroot目录下的文件到/ext/ext-web/tmp中,之后在统一发不到Tomcat服务器的相应目录中。
8、layouttpl、themes存放的是页面布局模板和主题包。
自己扩展的布局模板和主题包也是放在该目录下。
本文来自CSDN博客,转载请标明出处:/Pointer_v/archive/2008/10/18/3096039.aspx三、Liferay配置文件Tag标签参考1、IconIcon元素指定了一个在portlet中显示的图片2、Virtual—pathVirual—path 的值指定了一个虚拟路径用于覆盖默认的servlet内容路径.举个例子,假设你的portlet被部署在servlet路径”/test-portlet”. 通过默认值, portal将会返回到”/test-portlet”的servlet内容路径. 你可以通过设置虚拟路径到”/virtual”来覆盖默认路径, portal 就会返回到”/virtual”的servlet内容路径.默认值是””, 这意味着没有使用.3、Struts-path这个选项只在用Liferay Struts Portlet 框架时才有用. 假设struts—path的值是”mail”. 这就告诉了portal说所有的路径为mail/*的请求都在这个portlet’s领域的考虑范围之内.如果用户访问到这个portlet的话,只有路径匹配mail/*的用户请求才被允许访问. 这对于portlet 请求和标准的servlet请求同样适用.4、Configuration-pathConfiguration-path 的值是一个Struts 路径,允许用户配置运行时的portlet.5、Indexer-classIndexer-class的值必须是一个实现com.liferay.util.lucene.Indexer的类,并且被调用来创建,或者更新对于portlet的索引.6、Open-search-classOpen-search-class 的值必须是一个实现com.liferay.portal.kernel.search.opensearch的类, 并且以opensearch1.1的标准来被调用,以获得搜索结果.7、Scheduler-classScheduler-class的值必须是一个实现com.liferay.portal.job.scheduler的类, 并且被调用来确定这个portlet的Schedule Quartz jobs.8、Portlet-url-classPortlet-url-class 的值必须是一个继承了com.liferay.portlet.portleturlimplwrapper 的类.指定这个类来覆盖默认的portlet URL实现.9、Friendly-url-mapper-classFriendly-url-mapper-class 的值必须是一个实现com.liferay.portal.kernel.portlet.friendlyURLMapper的类.如果在portlet之内的内容要使用一个friendly URL 就要使用这个.它的使用例子在MessageBoards portlet中.10、url-encoder-classurl-encoder-class 的值必须是一个实现com.liferay.portal.kernel.servletURLEncoder的类.使用这个来建立一个自定义的URLEncoder,这个URLEncoder 是供RenderResponse 类来使用,用于实现encodeURL方法.在你需要添加自定义的逻辑来重写URLs时这个将会非常有用.11、Portlet-data-handler-classPortlet-data-handler-class 的值必须是一个实现r.PortletDataHandler 的类,并且当归档计划执行时被调用.12、Smtp-message-listener-classSmtp-message-listener-class 的值必须是一个实现了com.liferay.portal.kernel.smtp.MessageListener 的类, 并且当传输电子信件时才被调用.13、Preferences-company-wide如果这个portlet 的参数在整个公司内都可以访问,就将Preferencescompany-wide 的值设定为true,.将这个值设定为true 意味着不能使用preference-unique-layout 和preferences-owned-by-group 的值.默认值是false.例如,管理员可以将这些参数放置于一个声明好的portlet中,这个portlet可以以信息的形式来记录portlet中的参数.这些信息在公司的所有页面中都能访问.这个portlet不能被实例化,因为实例化的portlet有唯一的自增长的portlet id.被封装的声明的portlet的默认的行为将实例化的值设定为true,以便普通用户不能创建公司全局信息.一个更深层的引用将会包括对编辑模式的许可,这种编辑模式是相对于浏览模式来讲,允许管理员设定信息而用户只能浏览信息.14、Preferences-unique-per-layout如果这个portlet 的参数对每个页面都是唯一的,就将Preferencesunique-per-layout的值设定为true..如果将其设定为false,这个portlet的参数将会在所有页面中被访问.默认值是true.15、Preferences-owned-by-group如果这个portlet显示在一个组的页面中并且这个portlet的参数是由这个组来决定的, 就将preferences-owned-by-group的值设定为true. 如果将其设定为false,这些参数将会一直被用户拥有.默认值是true.假设股票portlet 有一个preferences-unique-per-layout, 将其设定为true并且将preference-owned-by-group设定为false.用户可以对于每个个人页面来指定不同的股票列表.也可以对每一个社区页面指定不同的股票列表.假设股票portlet 有一个preferences-unique-per-layout, 将其设定为false并且将preference-owned-by-group设定为false. 用户可以指定一个股票列表可以在所有的个人页面中查看.也可以在一个社区页面指定一个股票列表.假设股票portlet 有一个preferences-unique-per-layout, 将其设定为true并且将preference-owned-by-group设定为true. 用户可以对于每个个人页面来指定不同的股票列表.管理员可以在社区里指定对用户的portlet参数.管理员可以对每一个社区页指定不同的股票列表,这些页面之后可以被社区内的所有用户分享.假设股票portlet 有一个preferences-unique-per-layout 将其设定为false并且将preference-owned-by-group设定为true. 用户可以指定一个股票列表可以通过所有的个人页面来分享. 管理员可以在一个社区页中指定对用户的portlet参数. 管理员可以指定一个股票列表可以通过一个社区的指定页面的所有用户来分享.16、Use-default-template如果portlet使用默认的模板来装饰和包装内容, 就将Use-default-template的值设定为true. 将其设定为false允许开发者组织和编辑portlet的整体输出内容.默认值是true.如果你想要你的portlet与其他portlet不同,或者如果你想要你的portlet输出内容没有边框,这个值就是最常用的方式.17、Show-portlet-access-denied如果用户展示的portlet 有一个不允许的访问信息, 就将Show-portletaccess-denied 的值设定为true, 此信息是由于这些用户不能访问这些portlet.默认值在poral.properties值指定.18、Show-portlet-inactive将Show-portlet-inactive的值设定为true, 如果用户展示的portlet有一个不活跃的信息,如果将其设定为false,如果portlet是不活跃的, 用户将不能显示出这个portlet.默认值在portal.properties中指定.19、Action-url-redirect将Action-url-redirect 的值设定为true, 如果这个portlet 的一个actionURL可以导致自动的重定向.这可以帮助防止重复提交. 默认值是false.20、Restore-current-view将Restore-current-view的值设定为true, 如果当切换至最大化和正常状态,portlet恢复到当前视图时.如果将其设定为false, portlet将会重新设定当前视图,当其切换至最大化和正常状态时.默认值是true.21、Maximize-edit将Maximize-edit的值设定为true, 如果当用户处于编辑状态,portlet正处于最大化状态时.这只影响默认的portal 图标, 并且此时这个图标不是portlet开发者能够编辑的.默认值是false.22、Maximize-help将maximize-help的值设定为true, 如果当用户处于编辑状态, portlet正处于最大化状态时.这只影响默认的portal 图标, 并且此时这个图标不是portlet开发者能够编辑的.默认值是false.23、Pop-up-print将pop-up-print的值设定为true如果portlet正处于弹出状态并且用户正处于打印模式,这只影响到默认的portal图标, 并且此时这个图标不是portlet开发者能够编辑的.默认值是true.24、Layout-cacheable将Layout-cacheable标记设定为true,如果在这个portlet所包含的数据不会改变除非页面布局或者portlet实体改变.25、Instanceable将instanceable的值设定为true, 如果portlet可以在一个页面中显示多次,如果将其设置为false, portlet只在页面中显示其一次. 默认值是false.26、Private-request-attributes将Private-request-attributes的值设定为true, 如果这个portlet不与其他portlet共享请求属性. 默认值是true.27、Private-session-attributes将Private-session-attributes的值设定为true, 如果这个portlet并不与其他的portal共享会话属性.默认值是true.性质”session.shared.attributes”在portal.properties指定了哪一个会话属性可以分享即使private-sessionattributes的值是true.28、Render-weight默认值是1.如果将其设定小于1, portlet就会表现出并行性,如果将其设定为1或者更高, portlet 就会显示出连续性. 拥有一个更高的render-weight 的portlets有更高的优先级,并且在有低级别的render-weight的portlet之前呈现出来.如果ajaxable值设定为false, 最好将render-weight的值设定为 1. 这就意味着如果ajaxable设定为false,ajaxable可以覆盖render-weight的值.29、Ajaxable默认值为true. 如果将其设定为false,portlet将不能通过ajax来显示.30、Header-css设定CSS的相关联的路径,这些css是与portal的页面布局的头有关联的样式.31、Header-javascript设定javascript的相关联的路径,这些javascript是与portal的页面布局的头有关联的.32、Add-default-resource如果将Add-default-resource的值设定为false, porlet并不依附于页面而是动态加载,之后用户会发现他没有权限来查看这个portlet, 如果将Adddefault-resource的值设定为true,默认的portlet资源和权限被添加到页面中.用户可以查看这个portlet.大多数的portlets不受这种影响并且可以从这种灵活性中受益.然而,为了防止安全循环漏洞,默认值是false.33、System将system的值设定为true, 如果portlet是一个系统portlet, 用户不能手动添加portlet到他们的页面中.默认值是false.34、Active将active的值设定为true, 如果portlet是活跃的并且可供用户使用.如果将其设定为false, portlet将会不活跃或者不能让用户获取.默认值是true.这个设定值将会通过管理portlet在运行时改变.35、Include将include 值设定为true 如果portal 会使用这个portlet. 如果将其设定为false, portlet将会不能被portal使用. 默认值是true. 那些无论活跃或者不活跃的portlets,如果它们不包含在portal中,它们将不能被用户使用.由于这些portlets不会在系统中显示出来, 用户将不会知道这些portlet的存在. 这就使得Liferay开发者封装一系列的portlets在一个核心包中, 并且允许自定义的部署方式来开或者关独立的portlets或设定portlets. 这遵循了siebel和microsoft 的捆绑所有在一个核心包中的并且用xml来配置或注册注入来打开或关掉所有特性或一些特性的模式. 我们并不推荐自定义的部署者通过移去具体的portlets来修改核心源文件, 因为这防止了今后的轻松升级.最佳的打开或者关闭portlets的方式就是设定include元素. 这种方式来做事情的优点是变得非常易于部署Liferay. 所有的特性在一个包中都能使用,缺点是并不能优化所有的portlets, 所以你浪费了磁盘空间, 甚至可能导致一个微小的静态的内存印记.然而, 我们认为对于提供一个简单的安装和升级路径来说, 额外的磁盘空间和内存使用是一个很便宜的代价.37、Role-mapperRole-mapper包括两个具体的名称role-name和role-link.role-name值必须是在portlet.xml中定义的一个具体用户.role-link值必须是Liferay用户存在于数据库中.role-mapper元素组织了这些值来映射从portlet.xml的用户到Liferay数据库中的用户. 这是必须的, 因为Liferay用户可能包含spaces无论portlet.xml中的用户包不包含spaces. 这也增加了额外的灵活性, portlet卖主并不需要知道任何关于Liferay’s用户的信息.38、Role-name参见role-mapper元素的简介39、Role-link参见role-mapper元素的简介40、Custom-user-attribute自定义的用户属性包括一些名称,这些名称是用一个自定义的扩展了ccom.liferay.portlet.customuserattributes的类.下载一个简单的关键可部署的portlet WAR 叫test.war. 找到类:com.liferay.portlet.teststruts.teststrutsuserattributes 来观察是否它关联了自定义的用户属性”.test”与值”test name”.可以修改这个类来读取从其他数据库中自定义的用户属性,例如LDAP服务器,或一个web服务.41、Name参见Custom-user-attributer元素的简介42、Custom-class参见Custom-user-attributer元素的简介本文来自CSDN博客,转载请标明出处:/Pointer_v/archive/2008/10/18/3096131.aspx四、JSP Portlet开发JSP Portlet是开发中使用频率最高的开发方式,主要原因有两个:1、当配置好Portlet之后,只需要修改JSP文件。