<o:p>
Author:Helo
Email:porbilo@gmail.com
最近在一直看Portal的一些东西,以后会逐渐把一些相关的东西写上来,也算一个总结吧。
一、环境:
JDK: JDK 1.4
Liferay: Liferay-portal-tomca-4.2.2.zip
Liferay Src: liferay-portal-src-4.2.2.zip
OS: Windows xp
Tomcat: Tomcat-5.5.X (bundle with liferay JKD 1.4)
Database:DB2 8.2
Jikes: Jikes-1.22
Ant: Apace-ant-1.65
在系统环境变量里面新建JAVA_HOME、JIKES_HOME、ANT_HOME,在PATH环境变量里面添加%JAVA_HOME%\bin;%JIKES_HOME%\bin;%ANT_HOME%\bin。这里的ANT_HOME和PATH也可以不用设置,使用eclipse中自带的就好,这里就顺便设置下。另:这里使用的是JDK1.4,若要使用1.5则需使用官网提供的tomcat的JDK1.5绑定版。
二、Eclipse环境下的portal工程加载
Liferay的源代码实际上是一个Eclipse工程文件(该项目名称叫portal)。在Eclipse工作目录(我的目录为D:\liferay_4.2,此后记为${WORKSPACE})下建立portal目录,然后把下载下来的源代码liferay-portal-src-4.2.2.zip解压缩portal目录下。
选择File->New->Project->Java Project,输入项目名称为“portal”,保持默认的“create new project in workspace”,选择“Finish”结束。
如果上一步成功,那么已经可以在左侧栏看到源代码的目录结构了;并且右键点击项目的根目录,选“Properties”,选“Java Build Path”的“Libraries”标签,应该能够看到所有需要的jar格式库文件在里面了。
加载了portal项目之后的Eclipse的Package Explorer栏。
选择Windows showViewAnt在出现的Ant视图中单击Add build files,在弹出对话框中选择portal项目中根目录下build.xml文件。
三、基于Tomcat的扩展开发环境建立
修改portal下release.properties文件:
- lp.source.dir=D:/liferay_4.2/portal
- lp.ext.dir=D:/liferay_4.2/ext
- lp.eclipse.dir=D:/liferay_4.2/eclipse
- lp.eclipse.project.name=ext
编辑在${WORKSPACE}/portal\tools\ext_tmpl\ext-ejb\classes下的portal-ext.properties文件,修改#portal.release=enterprise为portal.release=professional。
然后在最后加入下面的语句:
- hibernate.dialect=org.hibernate.dialect.DB2Dialect
- custom.sql.function.isnull=CAST(? AS VARCHAR(32672)) IS NULL
- custom.sql.function.isnotnull=CAST(? AS VARCHAR(32672)) IS NOT NULL
liferay使用了hibernate做持久化,而liferay 4.3以前的所有版本在对DB2的支持上都有问题,所以这里需要手动配置hibernate.dialect和null的问题,否则无法启动或启动后出现莫名其妙的问题。
回到Eclipse中的Ant视图中,双击展开根节点Portal,双击打开根目录下的build.xml,应该可以在Outline看到很多Ant任务。
Outline下的ANT任务:
顺序执行 clean, start, build-ext 。屏幕下方的命令行窗口会跳跃相关文字提示信息,如果一切正确,那么其中不应该有红色的错误信息(绝大多数此处可能出现的错误都是配置文件不正确所引起的)。特别注意的是,如果你已经正确设置了JIKES_HOME和PATH却仍然提示“需要JIKES”,则把你的PATH设置为绝对路径如:C:\jikes\bin(我曾被这个问题郁闷了N久!^0^!)。一切正常的话,那么${WORKSPACE}\ext 目录下应该生成了很多东西了。
解压缩下载的liferay-portal-tomcat-4.2.2.zip(可运行的Liferay)到安装目录,以后假定此解压缩目录为${TOMCAT_HOME}。在${WORKSPACE}/ext目录下创建。
app.server.${username}.properties配置文件,在其中添加如下内容:
- lp.ext.dir=${WORKSPACE}/ext
- app.server.type=tomcat
- app.server.tomcat.dir=${TOMCAT_HOME}
仿照建立portal项目,选择File->New->Project->Java Project,输入项目名称为“ext”,保持默认的“create new project in workspace”,选择“Finish”结束。
如果上一步成功,那么已经可以在左侧栏看到ext项目的目录结构了;并且右键点击项目的根目录,选“Properties”,选“Java Build Path”的“Libraries”标签,应该能够看到所有需要的jar格式库文件在里面了。
安装Tomcat插件支持(这里不在详述)。
然后,在ant中点击deploy,即可完成部署。
四、配置DB2数据库支持
创建liferay数据库lportal:
将${WORKSPACE}\sql下的build.xml加入ant试图,启动rebuild-db2即可(当然,你应该先装好DB2)。
修改 ${TOMCAT_HOME}\conf\Catalina\localhost下的ROOT.xml文件:
xml 代码
- <Context path="">
- <Resource
- name="jdbc/LiferayPool"
- auth="Container"
- type="javax.sql.DataSource"
- driverClassName="COM.ibm.db2.jdbc.app.DB2Driver"
- url="jdbc:db2:lportal"
- username=""
- password=""
- maxActive="100"
- maxIdle="30"
- maxWait="10000"
- />
- <Resource
- name="mail/MailSession"
- auth="Container"
- type="javax.mail.Session"
- mail.imap.host="localhost"
- mail.pop3.host="localhost"
- mail.smtp.host="localhost"
- mail.store.protocol="imap"
- mail.transport.protocol="smtp"
- />
- <Realm
- className="org.apache.catalina.realm.JAASRealm"
- appName="PortalRealm"
- userClassNames="com.liferay.portal.security.jaas.PortalPrincipal"
- roleClassNames="com.liferay.portal.security.jaas.PortalRole"
- debug="99"
- useContextClassLoader="false"
- />
- Context>
然后将db2java.jar拷贝到 ${TOMCAT_HOME}\common\lib\ext下面即可。
至此,扩展开发环境搭建完成!
PS:
附件是本文的word文档,插入了一些图片可供参考。
</o:p>