Liferay_Portlet开发简单说明

Liferay Portlet开发简单说明

我们看到无论是portal和ext工程,目录都很繁杂,其实我们只要关注3个目录就够了。

portal里面的ext-impl\src,ext-service\src和portal-web。

ext-impl\src,ext-service\src是portal工程已经实现的所有portlet的java代码和部分资源文件.

ext-web目录是放置网页文件和portal的配置文件。

ext工程对应目录是ext-impl\src,ext-service\src和portal-web。

ext-impl\src,ext-service\src和portal-web。是放置我们自己开发的portlet的java代码。

ext-web是自己开发portlet对应的网页文件和配置文件。

下面我们来新建一个自己portlet。

这里我们采用portal里面代码规范生成机制。对于持久化层和服务层的类都可以自动产生。

我们的portlet功能很简单就是从数据库里面一个表中获取数据,并在页面上显示。

建立业务数据表

在数据库里面新建一个表users,字段userid,username,password.并往表中插入几个条数据。

建立代码模板配置文件

(1)建立service.xml文件

在ext-impl\src\com\ext\portlet 新建一个目录users,在目录下建立一个service.xml文件

文件内容为:

builder_5_1_0.dtd">

Users

class="https://www.360docs.net/doc/5e11601088.html,ersEntryPersistenceImpl">

UsersEntry

(2)修改ant文件,增加ant任务

建好service.xml文件后,我们在ext-impl目录下打开build-perent.xml 在

…….

下面添加任务

然后在myexlipse的ant视图里面打开ext-impl目录下的build.xml执行build-service-portlet-user任务。我们发现在ext-impl\src\com\ext\portlet\users , ext-service\src\com\ext\portlet\users

下面多了几个目录和文件。这是都是系统自动产生的hibernate的实体类和持久化类。

如果我们再细心些也可发现在ext-impl\src\META-INF目录下配置文件都多些内容。

系统已经自动将对应的实体类、持久化类、工具类等配置为相应的javabean、util、service等。

无疑节省了很多时间,而且减少我们人工配置的错误。

业务实现编码

现在我们要实现一个查询功能,将数据库中表名users中所有记录的username查询出来,并显示在前台。

打开\ext-service\src\com\ext\portlet\users\service下UsersEntryService文件,建立一个名为getAllUsers 的抽象方法;

public List getAllUsers() throws SystemException;

在\ext-impl\src\com\ext\portlet\users\service\impl\UsersEntryServiceImpl.java中实现它.

public List getAllUsers() throws SystemException {

return UsersEntryUtil.findAll();

}

同样spring的service层也是通过辅助类作为对外唯一入口,所以在UsersEntryServiceUtil里面增加一

个方法getAllUsers作为service层的方法getAllUsers的入口。

public static List getAllUsers() throws SystemException{

return _service.getAllUsers();

}

需要注意的是service层接口对应具体实现是由工厂类指定。他们捆绑关系可以查看spring配置文件信息。

在执行ant 的build-service-portlet-usertest任务已经完成了。

在\src\com\ext\portlet\users\action目录下建立一个ViewUserAction.java文件,完成响应客户端请求。package https://www.360docs.net/doc/5e11601088.html,ers.action;

import https://www.360docs.net/doc/5e11601088.html,ersEntryModel;

import https://www.360docs.net/doc/5e11601088.html,ersEntryServiceUtil;

import com.liferay.portal.struts.PortletAction;

import java.util.ArrayList;

import java.util.List;

import javax.portlet.PortletConfig;

import javax.portlet.RenderRequest;

import javax.portlet.RenderResponse;

import javax.portlet.WindowState;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

public class ViewUsersAction extends PortletAction {

public ActionForward render(ActionMapping mapping, ActionForm form,

PortletConfig config, RenderRequest req, RenderResponse res)

throws Exception {

if (req.getWindowState().equals(WindowState.NORMAL)) {

return mapping.findForward("https://www.360docs.net/doc/5e11601088.html,ers.view");

} else {

List users = UsersEntryServiceUtil.getAllUsers();

List usernames = new ArrayList();

for (int i = 0; i < users.size(); i++) {

usernames.add(((UsersEntryModel) users.get(i)).getUsername());

}

req.setAttribute("users", usernames);

req.setAttribute("count", ""+users.size());

return mapping.findForward("https://www.360docs.net/doc/5e11601088.html,ers.view_users");

}

}

}

里面大概功能是如果porlet的窗口状态时普通,则定向到一个叫portlet.ext.myuser.view的目标上。如果窗口状态是最大化,那么就从调用userLocalServiceUtil,从数据库里面获取所有人员信息。Portlet的生成

建立自己的portlet。在\ext-impl\src\com\ext\portlet\users下面新建文件UsersPortlet.java

package https://www.360docs.net/doc/5e11601088.html,ers;

import com.liferay.portlet.StrutsPortlet;

import java.io.IOException;

import javax.portlet.PortletException;

import javax.portlet.PortletPreferences;

import javax.portlet.RenderRequest;

import javax.portlet.RenderResponse;

public class UsersPortlet extends StrutsPortlet {

public void doView(

RenderRequest renderRequest, RenderResponse renderResponse)

throws IOException, PortletException {

PortletPreferences prefs = renderRequest.getPreferences();

System.out.println(prefs.getValue("test", ""));

super.doView(renderRequest, renderResponse);

}

}

该portlet重载了doview方法。如果自己portlet对view和edit有自己特性,那么只要重载doview和doedit就可以了。

现在portlet的内容是空的,我们用jsp页面来展示用户名称方式来填充portlet里面内容。

在\ext-web\docroot\html\portlet\ext目录下建立目录users,并在users目录下建立init.jsp文件

<%@ include file="/html/common/init.jsp" %>

<% PortletPreferences prefs = renderRequest.getPreferences(); %>

建立view.jsp文件:

<%@ include file="/html/portlet/ext/users/init.jsp" %>

" />"> MyUser

<%= prefs.getValue("user", "") %>

该jsp内容是显示默认的初始用户名。具体值从初始化配置参数里获取。

建立view_users.jsp

<%@ include file="/html/portlet/ext/users/init.jsp" %>

<% List reports = (List)request.getAttribute("users");%>

<% String count = (String)request.getAttribute("count");%>

size : <%=count %>.

<%

for (int i = 0; i < reports.size(); i++) {

String reportName = (String)reports.get(i);

%>

<%= reportName %>

<%

}

%>

该jsp页面目的是展示所有从数据库里面取出来的用户名。

Ok,完成以上工作后,我们整个portlet编码工作已经宣告结束,接下来的是配置portlet

参数工作。

Portlet的配置:

是portlet配置信息文件存放\ext-web\docroot\WEB-INF目录下,在portlet-ext.xml文件里面添加

EXT_Users

Users

https://www.360docs.net/doc/5e11601088.html,ersPortlet

view-action

/ext/users/view_users

0

text/html

com.liferay.portlet.StrutsResourceBundle

test

power-user

user

必须唯一,不得已有portlet名字冲突。也必须唯一。

指向我们的建立portlet类。

view-action里面值是指view这个action对应的actionurl。

里面参数值是提供给这个portlet使用的参数初始值。这里配置是指portlet里面使用到参数名user的值是jack。

如portlet不需要初始值参数,则该项不需要配置。

在liferay-portlet-ext.xml文件里面添加

EXT_Users

ext/users

false

的值必须和portlet-ext.xml文件里面值一致。

在liferay-display。Xml文件节点

下面添加

id必须和portlet-ext里面的一致。

在struts-config.xml文件里面添加内容:

就是说,当前台提交一个actionUrl为/ext/users/view_users请求的时候,由ViewUsersAction负责处理这个

action操作。后面2个forward指的是在ViewUsersAction定向返回请求目标页面。

…………

return mapping.findForward("https://www.360docs.net/doc/5e11601088.html,ers.view");

………

return mapping.findForward("https://www.360docs.net/doc/5e11601088.html,ers.view_users");

findForward的值为避免与其他findForward值冲突,一般将包名也带上,保证不会重名。

在tiles-defs.xml文件里面添加内容:

该name的值即随同struct-config.xml配置信息里面forward参数path值对应的,指向真正的目标页面。最后我们在\ext-impl\src\content目录下Language-ext.properties文件里面增加内容:

javax.portlet.title.EXT_Users=Users

view-users=View Users

即portlet显示出来时候,在portlet上面标题信息。

大家在Liferay的二次开发的过程中,可能都觉得部署起来太麻烦,都需要ant deploy,然后重新启动Tomcat才能生效。特别是连修改JSP都需要这么做。

做了一个简单的尝试,在一定程度上解决自动部署的问题。利用的是Eclipse的Builder机制。因为没有花多少时间,所以适应性也就比较差,只适用于Tomcat服务器。大家可以简单修改一下,以适应其他服务器。

11.1 写XML文件

在ext根目录下,创建一个XML文件liferay-ext-increament-deploy.xml。内容为:

includeEmptyDirs="false">

includeEmptyDirs="false">

11.2 为ext项目添加builder

1、在ext项目上右键单击,选择Properties

2、弹出窗口中,选中“Builders”

3、右边窗口中,缺省有“Java Bulder”存在。单击“New…”按钮,并选择“Ant Build”

4、在弹出窗口中,Name框输入LiferayExtIncreamentDeploy

5、Main这个Tab中

Buildfile输入${workspace_loc:/ext/liferay-ext-increament-deploy.xml}

Base Directory输入${workspace_loc:/ext}

6、在Targets Tab中,Auto Bulder选择”deploy”任务

7、在Build Options Tab中,选中“Specify working set of relevant resources”,并单击“Specify Resources…“,在弹出窗口中选中ext\ext-ejb\src 和ext\ext-web\docroot\html这两个目录。

8、如果不想每次看到deploy过程,可以取消选中”Allocate Console”

然后确认即可。

11.3 一些局限性

因为这是一个很简单的解决方法,难免会有很大的局限性。他最适用的情形是:代码调试,因为这时候需要不断做一些细节修改,而不用大规模动手术。

该方案能够解决的问题就是:ext环境中,jsp和java文件修改后,能自动更新到tomcat里面。JSP的改动能够立即生效,java文件,简单修改,不涉及到添加删除方法等,一般也能立即生效。

通过设置可以看到,只是监控了jsp和java文件的修改,如果修改了其他文件,则需要重新ant deploy 并重启Tomcat。

另外,启动Tomcat之前,最好想办法让这个deploy执行一次,目的就是确保class文件拷贝到WEB-INF/classes下面了,否则,Tomcat启动后再拷贝这些class文件,会导致Tomcat需要重启。

1. 关于Liferay

Liferay 是一个完整的门户解决方案,基于J2EE的应用,使用了EJB以及JMS等技术,前台界面部分使用Struts MVC 框架,基于XML的portlet配置文件可以自由地动态扩展,使用了Web服务来支持一些远程信息的获取,使用Lucene实现全文检索功能。

(Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单强大的应用程式接口,能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具;就其本身而论,Lucene是现在并且是这几年,最受欢迎的免费java资讯检索程式库。人们经常提到资讯检索程式库,就像是搜寻引擎,但是不应该将资讯检索程式库与网搜索引擎相混淆。)

主要特点如下:

1、提供单一登陆接口,多认证模式(LDAP或SQL);

2、管理员能通过用户界面轻松管理用户,组,角色;

3、用户可以根据需要定制个性化的门户布局;

4、能够在主流的J2EE应用服务器上运行;

5、支持主流的数据库;

6、使用了第三方的开源项目,如Hibernate, Lucene, Struts;

7、支持包括中文在内的多种语言;

8、采用最先进的技术Java, EJB, JMS, SOAP, XML;

9、提供扩展模式下开发;

10、提供插件模式下开发;

11、多数据库支持;

这里我们就是利用Liferay源码通过Ant发布Liferay扩展包进行Portal项目的发布和开发工作。

2. 准备工作

2.1 下载Liferay 5.2.3

Liferay源码包 liferay-portal-src-5.2.3.zip

Oracle数据文件liferay-portal-sql-oracle-10-5.2.3.dmp

(下载地址:https://www.360docs.net/doc/5e11601088.html,/project/showfiles.php?group_id=49260)

2.2 开发工具

JDK 1.6 以上;

Ant 1.7 以上;

Tomcat 6.0 以上;

Myeclipse 5.1以上;

3. 环境配置

3.1 JDK配置

(1)JAVA_HOME:JDK的安装目录

(2)PATH:把%JAVA_HOME%\bin目录加到path变量

(检查JDK是否安装正确,通过“JAVA –version”命令来判断。同样下边的ant也是同样的方式进行检查“ANT -version”)

3.2 ANT配置

(1)ANT_HOME:ANT的安装目录

(2)PATH:把%ANT_HOME%\bin目录加到path变量

3.3 Myeclipse配置

(1)设置Myeclipse的JDK

Myeclipse的JDK采用上面安装过的JDK1.6

(2)设置字符编码

字符编码统一采用UTF-8

(3)Tomcat Server 选择6.X,目录为Tomcat的目录,JDK采用上面安装过的JDK1.6,

在后面的“部署ext扩展工程”会详细说明。

4. 部署Liferay源码

4.1建立目录结构

新建一个工作空间目录Liferay,然后在Liferay目录中新建两个目录;一个是service目录,并将Tomcat 复制进去;再新建一个portal目录,将liferay-portal-src-5.2.3.zip压缩包中的源码文件解压到该目录。我的工作空间是D:\program\Liferay。

如图所示目录结构:

4.2 导入Liferay源码

(1)切换工作空间

启动Myeclipse,切换到刚才新建的Liferay工作空间中去。

操作方法:选择菜单File → Switch Workspace → Other,选择Liferay目录,点击确认完成操作。

(2) Import源码

选择菜单: File →Import;

在弹出窗口中,选中“Existing Projects into Workspace”

点击“NEXT”,进入到源码文件目录选择窗口。在“Select root directory”中选择前边新建好的存放Liferay 源文件目录portal。

点击“Finish”,进行导入工作,等待Myeclipse加载和编译完工作空间之后,出现以下目录结构:

4.3 修改配置文件

4.3.1 新增release.${username}.properties扩展环境配置文件

进入D:\program\Liferay\portal目录,你会看到release.properties配置文件。

按照Liferay官方的说法,该文件不能修改,但需要在同目录下创建一个release.${username}.properties 文件,它是release.properties的扩展文件,release.${username}.properties中的属性配置会覆盖release.properties中的属性。

${username}是计算机登录的用户名,官方配置文档提供一个查看用户名的方法:cmdà输入set。

如图中标记所示,我的计算机用户名为recky,那么我们就要创建release.recky.properties文件,然后添加如下内容:

##lp.eclipse.dir tells Liferay where you installed Eclipse.

##lp.ext.dir tells Liferay where to create the EXT environment.

## Extension Environment

##

lp.ext.dir=D:/program/Liferay/ext

##

## Eclipse

##

##lp.eclipse.dir=

https://www.360docs.net/doc/5e11601088.html,=ext

##

## AntInstaller

##

#ant.installer.dir=D:/apache-ant-1.8.0

说明:lp.ext.dir指向为扩展环境目录,这个目录设定好了之后,通过ant自动生成一系列扩展文件。

lp.eclipse.dir为eclipse安装目录,这里可以缺省。

https://www.360docs.net/doc/5e11601088.html,扩展项目名称,这个好像可以缺省。

ant.installer.dir为ANT安装目录。

4.3.2 新增app.server. ${username}.properties服务器配置文件

在D:\program\Liferay\portal目录,你会看到app.server.properties配置文件。这个是自定义服务器配置

脚本文件。这里我们要在同目录创建app.server. ${username}.properties文件,用你的计算机登录用户名替换${username}。

新建文件app.server.recky.properties,并添加以下内容:

app.server.type=tomcat

app.server.tomcat.dir=D:/program/Liferay/service/apache-tomcat-6.0.24

##app.server.type tells Liferay which server it will deploy to

##app.server.tomcat.dir tells Liferay the location of Tomcat

说明:app.server.type 指定服务器类型

app.server.tomcat.dir 指定Tomcat安装目录

4.3.3 修改build.xml文件

修改下面的操作

找到

添加一个如下:

在Liferay官方文档中是没有此操作的,那为什么这样做呢?在官方文档中是这样说明的:新增release.${username}.properties文件之后,通过ant命令创建扩展环境。下一步才是创建app.server. ${username}.properties文件(它在前边指定的扩展文件夹根目录)。原build.xml文件执行时是不拷贝你新建的app.server. ${username}.properties文件到扩展环境的,所以这里我们要加上这段代码。这样,执行build文件创建扩展文件的同时也将对应的自定义服务器配置文件copy到扩展环境中。

4.4 编译生成Ext扩展工程

4.4.1 打开ant视图

选择菜单window → show view → Other

弹出选择框,选中ant,点击OK打开ant视图

4.4.2 添加build文件

点击ant视图工具栏中的添加build文件按钮,打开选择页面如下图,展开portal项目文件夹,选中build.xml,点击ok完成添加。

4.4.3 执行build文件

右键单击刚才添加ant任务portal,选择菜单Run As → Open External

打开外部工具界面:

在执行任务之前配置JRE和JVM参数

JRE使用前边安装好的JDK1.6,在VM argument中输入如下参数以加大ant运行内存:-Xms256M

-Xmx512M -XX ermSize=256M -XX:MaxPermSize=512M。

配置完成之后,点击Apply。然后切换到Targets任务对象标签,依次选择

clean start build-ext 任务,如图:

点击order按钮,配置选中任务的执行顺序。确保按clean start build-ext的顺序:

点击“OK”,回到刚才的页面上,点击“Run”运行任务。

提示:在ant视图中双击任务名称即可运行。选中某个任务,然后单击ant视图工具栏中的运行按钮也可执行该任务。

Myeclipse在执行ant任务时,控制台会打印出任务执行的日志信息,任务成功执行完毕之后,在D:/program/Liferay/ext目录下会生成一系列文件和目录。这样ext扩展工程生成完毕。

4.5 为什么要生成扩展工程

开发者为了把自己开发的客户化代码和Liferay 源代码分离开。Liferay 推荐开发者在EXT 环境下开发,因为Liferay 修复bugs升级最新版本,这样方便了和新版本的Liferay 同步。本质上,EXT 环境是建立在Liferay 源代码之上的一层结构。在EXT环境中,源代码封装在JAR 文件中。当你在EXT 环境中执行build 时,你会创建更多的JAR 文件。

为了方便进行自己的修改和定制开发,同时又能与Liferay的更新保持兼容,我们使用单独的目录来放置自己的修改,这样在Liferay发布新版本时,可以直接升级Liferay部署,而不会与我们的修改相冲突。这里使用D:\program\Liferay\ext目录来放置所有的扩展(包括JSP、class文件及依赖库等)。

1.

2.

3.

4.

5. 部署ext扩展工程

5.1 导入ext工程

方法同“导入Liferay源码”,在Myeclipse中导入ext工程,目录选择“D:\program\Liferay\ext”。目录结构如下:

5.2 创建数据库

网上能够找到的相关文档都是基于mysql的,自己的机器上是oracle 10g,而且Liferay支持多种数据库,并且修改相应的数据库连接配置也不复杂,于是就采用oracle数据库了。

使用dba用户登录oracle服务器,新建LPORTAL用户,密码同用户名。然后登出,使用LPORTAL 用户登录,利用plsql工具或者Imp命令导入liferay-portal-sql-oracle-10-5.2.3.dmp数据库脚本文件,完成数据库的创建。

5.3 修改配置文件

5.3.1 Liferay门户显示语言设置

修改portal-ext.properties,添加如下内容

https://www.360docs.net/doc/5e11601088.html,nguages=zh_CN

修改system-ext.properties,添加以下内容

user.country=CN

https://www.360docs.net/doc/5e11601088.html,nguage=zh_CN

user.timezone=GMT+8

两个文件在ext/ext-impl/src目录中,修改以上两个配置文件主要目的是让Liferay门户显示语言为中文简体。

5.3.2 修改tomcat的catalina.properties配置

修改catalina.properties,替换以下内容:

common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/lib/ext,${catalina.home}/ lib/ext/*.jar,${catalina.home}/common,${catalina.home}/common/*.jar,${catalina.home}/common/endorse d,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib,${catalina.home}/common/lib/*.j ar,${catalina.home}/common/lib/ext,${catalina.home}/common/lib/ext/*.jar

catalina.properties在Tomcat安装目录的conf目录中,修改此文件目的在于指定扩展环境需要的架包。

5.3.3 Tomcat引入ROOT.xml文件

我们使用的是Tomcat 6.0.24,在conf目录中没有Catalina\localhost目录,按官方文档要求需要在以上目录中创建ROOT.xml文件,而且文件名称一定要大写。所以我们要在conf目录中手动创建catalina 目录,再在catalina目录中创建localhost目录。用文本打开ROOT.xml文件添加以下内容:

name="jdbc/LiferayPool"

auth="Container"

type="javax.sql.DataSource"

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc racle:thin localhost:1521:orcl"

username="LPORTAL"

password="LPORTAL"

maxActive="100"

maxIdle="30"

maxWait="1000"

/>

name="mail/MailSession"

auth="Container"

type="javax.mail.Session"

mail.transport.protocol="smtp"

mail.smtp.host="localhost"

/>

className="org.apache.catalina.realm.JAASRealm"

appName="ortalRealm"

userClassNames="com.liferay.portal.security.jaas.PortalPrincipal"

roleClassNames="com.liferay.portal.security.jaas.PortalRole"

debug="99"

/>

说明:jdbc/LiferayPool是jndi连接池名称,根据实际环境配置相关设置。这里我采用的oracle数据库,所以使用的是oracle驱动名,并将ojdbc14.jar驱动包复制到ext\ext-lib\global\目录中去。

5.3.4 copy数据库驱动包

将ojdbc14.jar驱动包复制到ext\ext-lib\global\目录中去。

5.3.5 修改ext-spring.xml文件

用了jndi连接池,那么必须要在ext-spring.xml里面添加下面的liferayDataSource这个自定义bean进行覆盖原有的采用jdbc的bean。

class="https://www.360docs.net/doc/5e11601088.html,zyConnectionDataSourceProxy">

class="com.liferay.portal.spring.jndi.JndiObjectFactoryBean">

ext-spring.xml文件在\ext-impl\src\META-INF目录中。

5.3.6 修改portal-ext.properties文件

打开portal-ext.properties,添加如下内容

https://www.360docs.net/doc/5e11601088.html,=jdbc/LiferayPool

hibernate.dialect=org.hibernate.dialect.Oracle9Dialect

Liferay 底层采用了Hibernate,所以还需要设置Hibernate Dialect

portal-ext.properties在ext/ext-impl/src目录中

5.3.7 Tomcat引入jaas.config文件

新建jaas.config文件,在jaas.config的文件中,添加如下内容:

PortalRealm {

com.liferay.portal.shared.security.jaas.PortalLoginModule required;

};

将jaas.config文件放置在tomcat的conf目录下。并在catalina.bat文件或者在Myeclipse关联的Tomcat 服务器中的启动参数中增加-Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config 来设置jaas的配置,下一步进行详细说明。当然,这首先一定要保证在前面的ROOT.xml的Context 中配置JAASRealm。

Jaas是需要被正确配置的,否则系统不可以正确登陆,而且会一直不断的访问/jaas_securit_check,而不能登陆。

5.3.8 修改Myeclipse启动tomcat配置

修改tomcat的jdk和启动参数,在“Optional Java VM arguments”中添加如下内容:

-Xms256M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -Djava.security.auth.login.config=D:/program/Liferay/service/apache-tomcat-6.0.24/conf/jaas.config

注意:在执行完生成ext扩展工程的ant任务之后,Tomcat目录中的temp被删除了,没有这个目录Myeclipse配置Tomcat的时候会报错,这是需要手动在Tomcat根目录中建立temp目录。后来发现发布ext工程时,Liferay自己会自动生成该目录以及其他删除的目录。

5.3.9 修改Tomcat的server.xml文件

在conf目录下打开server.xml文件,找到

替换成以下内容, 开启压缩gzip,加速网站访问速度。

enableLookups="false" connectionTimeout="30000" acceptCount="768" compression="on" compressionMinSize="2048"

noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" URIEncoding="UTF-8" disableUploadTimeout="true" redirectPort="8443" />

5.3.10 修改Tomcat的catalina.bat文件

在tomcat的catalina.bat中添加如下内容:

set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx1024m -XX:MaxPermSize=128m

-Dfile.encoding=UTF8 -Duser.timezone=GMT+8 -Djava.security.auth.login.config="%CATALINA_HOME%/conf/jaas.config"

如果只是用Myeclipse启动Tomcat的话,就不需要设置这个。

5.4 发布ext工程

同上边生成ext扩展工程一样,在ant视图中添加ext工程中的build.xml文件

同样xml文件添加完毕之后,要打开ANT外部工具配置JRE和JVM参数:

JRE使用前边安装好的JDK1.6,在VM argument中输入如下参数以加大ant运行内存:-Xms256M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M。

配置完成之后执行deploy任务。默认任务是deploy,所以再完成配置之后点击“run”按钮即可执行任务。

通过Myeclipse控制台的打印信息你会发现ant将扩展文件以及各种jar包copy到Tomcat指定的目录中去。并且Liferay应用被配置成为默认根应用了。这样Liferay门户系统发布完毕。

5.5 启动Liferay门户

一切准备就绪之后,可以通过Myeclipse来启动或者直接通过Tomcat的startup来启动。

服务启动完毕之后,服务器会自动打开Liferay门户首页。

6. 二次开发准备

单点登录技术需要去了解下CAS原理

全文索引需要了解Apache的Lucene

还要了解下什么是portlet。

然后在这基础上进行二次开发工作,开发自己的portlet

Liferay 5.2.3 开发环境搭建

目录

Liferay 5.2.3 开发环境搭建 (1)

1.

关于Liferay. 1

2.

准备工作 (2)

2.1 下载Liferay 5.2.

3.. 2

2.2 开发工具 (2)

3.

环境配置 (2)

3.1 JDK配置 (2)

3.2 ANT配置 (2)

3.3 Myeclipse配置 (3)

4.

部署Liferay源码 (3)

4.1建立目录结构 (3)

4.2

导入Liferay源码 (4)

4.3

修改配置文件 (7)

4.3.1

新增release.${username}.properties扩展环境配置文件 (7)

4.3.2

新增app.server. ${username}.properties服务器配置文件 (8)

4.3.3

修改build.xml文件 (8)

4.4

编译生成Ext扩展工程 (9)

4.4.1

打开ant视图 (9)

4.4.2

添加build文件 (10)

4.4.3

执行build文件 (10)

4.5

为什么要生成扩展工程 (12)

5.

部署ext扩展工程 (13)

5.1

导入ext工程 (13)

5.2

创建数据库 (13)

5.3

修改配置文件 (14)

5.3.1

Liferay门户显示语言设置 (14)

5.3.2

修改tomcat的catalina.properties配置 (14)

5.3.3

Tomcat引入ROOT.xml文件 (15)

5.3.4

copy数据库驱动包 (16)

5.3.5

修改ext-spring.xml文件 (16)

5.3.6

修改portal-ext.properties文件 (16)

5.3.7

Tomcat引入jaas.config文件 (16)

5.3.8

修改Myeclipse启动tomcat配置 (17)

5.3.9

修改Tomcat的server.xml文件 (17)

5.3.10

修改Tomcat的catalina.bat文件 (18)

5.4

发布ext工程 (18)

5.5

启动Liferay门户 (19)

6.

二次开发准备 (19)

1.

关于Liferay

Liferay 是一个完整的门户解决方案,基于J2EE的应用,使用了EJB以及JMS等技术,前台界面部(Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供人们经常提到资讯检索程式库,就像是搜寻引擎,但是不应该将资讯检索程式库与网搜索引擎相混主要特点如下:

1、提供单一登陆接口,多认证模式(LDAP或SQL);

2、管理员能通过用户界面轻松管理用户,组,角色;

3、用户可以根据需要定制个性化的门户布局;

4、能够在主流的J2EE应用服务器上运行;

5、支持主流的数据库;

6、使用了第三方的开源项目,如Hibernate, Lucene, Struts;

7、支持包括中文在内的多种语言;

8、采用最先进的技术Java, EJB, JMS, SOAP, XML;

9、提供扩展模式下开发;

10、提供插件模式下开发;

11、多数据库支持;

这里我们就是利用Liferay源码通过Ant发布Liferay扩展包进行Portal项目的发布和开发工作。2.

准备工作2.1 下载Liferay 5.2.3

Liferay源码包

liferay-portal-src-5.2.3.zip

Oracle数据文件 liferay-portal-sql-oracle-10-5.2.3.dmp

(下载地址:https://www.360docs.net/doc/5e11601088.html,/project/showfiles.php?group_id=49260)

2.2 开发工具

JDK 1.6 以上;

Ant 1.7 以上;

Tomcat 6.0 以上;

Myeclipse 5.1以上;

3.

环境配置3.1 JDK配置

(1)JAVA_HOME:JDK的安装目录

(2)PATH:把%JAVA_HOME%\bin目录加到path变量

(检查JDK是否安装正确,通过“JAVA –version”命令来判断。同样下边的ant也是同样的方式3.2 ANT配置

相关文档
最新文档