Liferay是一个出色的Java开源Portal产品,其中整合了很多当今流行的开源框架,被不少人使用在实际项目中。最近刚结束了一个基于Liferay Portal的项目,总结下使用中的一些心得,希望对正在使用Liferay的朋友有些帮助。
一、安装
Liferay的安装十分容易,甚至都不能称其为安装,根据情况从Liferay官方网站下载合适的安装包(一般可以选择Tomcat的Bundle),解压后直接运行,它会使用自带的HSQL数据库,其中包括一些初始数据和演示数据。
实际使用时不能用HSQL,也不应该有演示数据,所以可以用Liferay站点提供的SQL来初始化数据库。Liferay-portal-sql的包比较大,只要用其中的几个SQL就行了,如果是全新安装,用create-minimal目录中适合自己数据库的那个SQL文件就可以了。
启动tomcat前,修改conf\Catalina\localhost中的ROOT.xml,启用新的数据源,Hibernate的Dialect系统会自动识别的。
二、Portal细节配置
Liferay的可配置性极强,可以通过两个部分来配置,一是portal-ext.properties文件,二是进入系统后用企业管理Portlet来配置。
要了解portal-ext有哪些可以配置的参数,可以打开portal-impl.jar中的portal.properties,其中对每个属性都带有详细的说明,portal-ext.properties会覆盖其中的配置。
列举几个个人认为比较有用的设置:
1.登录相关(这个可以在企业管理里设置)
company.security.auth.type=screenName
company.security.auto.login=false
company.security.send.password=false
company.security.strangers=false
open.id.auth.enabled=false
2. 默认用户布局
可以自己设置上面要放的Portlet和布局。
default.user.layout.name=Home
default.user.layout.template.id=3_columns
default.user.layout.column-1=
default.user.layout.column-2=
default.user.layout.column-3=
default.user.layout.column-4=
3. Session控制
session.timeout=30
session.timeout.warning=1
session.timeout.auto.extend=false
4.无法显示的portlet设置
我本来在JavaEye上问怎么隐藏没权限的Portlet呢,结果后来看到了这个配置。
layout.show.portlet.access.denied=false
layout.show.portlet.inactive=false
其他的设置还有很多,比如terms.of.use.required、theme.sync.on.group、auth.forward.by.last.path、default.landing.page.path等等,请参考portal.properties。如果不想修改配置文件也能用企业管理Portlet,它们有些地方是互补的,所以结合起来看看吧。
三、简单性能优化
项目中使用的是一台Intel 3.20GHz双核 2G内存的IBM服务器,操作系统为Windows 2000 SP4,数据库为Oracle 9i,安装在另一台服务器上。
Liferay的默认设置在运行时总是感觉有些力不从心,有时响应速度很慢,开发时可以接受,但实际上线时肯定需要进行调整。因为没什么调优经验,所以随便对Tomcat和Liferay的参数做了些调整,仅供参考:
首先修改Tomcat 5.5的JVM的参数,考虑到服务器上还有其他服务,JAVA_OPTS中,-Xms512m –Xmx1024m,因为把JDK换成了jrockit-R27.4.0-jdk1.6.0_02,所以没有设置-XX:MaxPermSize。
然后安装Tomcat Native library,就是APR啦。
接下来修改server.xml,找到HTTP/1.1的Connector,调整maxThreads、minSpareThreads、maxSpareThreads和acceptCount的值,适当调高些,并启用gzip压缩。先运行一段时间,如果有需要再做调整,我的配置是这样的:
<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="768" minSpareThreads="128" maxSpareThreads="256"
enableLookups="false" redirectPort="8443" acceptCount="768"
connectionTimeout="30000" disableUploadTimeout="true"
compression="on" compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
/>
修改好应用服务器后,再来看看Liferay。打开portal-ext.properties,添加如下内容:
portlet.css.enabled=false
javascript.fast.load=true
theme.css.fast.load=true
velocity.engine.resource.manager.cache.enabled=true
经过了以上这些步骤后,都不用什么工具测试,可以明显感觉系统速度快了不少。
四、一些问题
1.糟糕的中文翻译
虽说Liferay的作者是华裔的,不过那中文翻译实在不敢恭维,好在网上有些网友自制的中文包,不过内容并不完全。可以自己增加或覆盖中文语言信息,文件名是Language-ext_zh_CN.properties,放在WEB-INF/classes/ content目录中,至于其中的内容参考下portal-impl.jar里的资源包,记得使用前先native2ascii转换一下。
2.控制台信息
Liferay的控制台输出时区不对,且中文有乱码。在企业管理Portlet的设置中将时区设置为(GMT +08:00)CST可以解决时间问题。
控制台的中文乱码有两种解决方法,一是在catalina.bat中去掉JAVA_OPTS里的-Dfile.encoding=UTF8;另一种就是conf/logging.properties,加上java.util.logging.ConsoleHandler.encoding = GBK,建议用后者吧。其实说白了就是因为Windows用的编码是GBK。
3.Document Library文件名乱码
Document Library Portlet提供了文件上传和下载的功能,可惜上传的中文名在下载时都会乱码,原先以为是一般的中文乱码问题,在Liferay自己的web.xml中补上了一段Spring的编码转换Filter声明,结果发现不行,看了源代码后才知道它直接用servlet进行文件下载,而问题还是出在Windows是GBK上。
也懒得想什么好办法了,直接修改com.liferay.portlet.documentlibrary.action.GetFileAction文件,在第128行,把ServletResponseUtil.sendFile参数中的fileEntry.getTitleWithExtension()改成new String(fileEntry.getTitleWithExtension().getBytes("GBK"),"ISO8859_1")。这样可以解决Windows下的乱码,别的不做保证,最好能实现判断下编码,有些系统默认编码是UTF-8,转了反而会出问题。
4.关于默认用户权限
Liferay默认新建用户的角色是User和Power User,每个用户可以有自己的私有页面,不过有时不希望出现这个私有的Community,在企业管理Portlet中可以调整默认用户的设置(默认Community、Role和User group),我去掉了Power User角色。
但问题也随之而来,要求用户强制在第一次登录时修改密码,修改后出现没有为用户配置页的提示,而且放在Guest里的文档库普通用户也无法下载。郁闷了老半天之后,只能为所有的用户都分配了一个Community才把问题解决(我直接把用户扔进Guest Community了)。
分享到:
- 2008-01-07 15:58
- 浏览 2188
- 评论(2)
- 论坛回复 / 浏览 (1 / 6587)
- 查看更多
相关推荐
综上所述,Liferay的国际化机制、表格组件的使用以及CLOB字段的处理是构建全球化、交互式和内容丰富的Liferay应用的关键技术。熟练掌握这些技术,能帮助开发者创建出适应多种语言环境、功能丰富的企业级应用程序。
### Liferay权限管理系统详解 Liferay是一款开源的企业级门户平台,提供了一系列强大的工具和服务,用于构建和管理企业网站、社区和应用程序。其中,权限管理是其核心功能之一,旨在帮助企业控制用户对不同资源的...
**Liferay 使用手册** Liferay 是一款开源的企业级门户平台,它提供了丰富的功能,包括网站构建、内容管理、社交协作以及工作流程管理等。这款工具以其灵活的架构和强大的定制能力,深受企业和开发者喜爱。本手册将...
### Liferay Portal 6 使用文档知识点详述 #### 一、Liferay Portal 6:企业级门户解决方案 Liferay Portal 6是一款先进的企业级门户平台,旨在帮助企业构建和维护高效、安全、用户友好的内部网(Intranets)。它...
Liferay Portal Liferay IDE
### Liferay 使用手册详解 #### 一、快速入门 ##### 安装步骤 Liferay是一款功能强大的企业级门户平台,其安装过程相对直观。首先,访问Liferay官方网站,下载适用于您环境的Liferay-portal-tomcat-4.2.2.zip文件...
《Liferay6开发书籍》是一套全面探讨Liferay Portal 6企业应用开发的资源集合,旨在帮助开发者深入了解和掌握Liferay平台的各个层面。Liferay是一个开源的企业级内容管理系统,常用于构建数字体验平台,提供丰富的...
标题 "Liferay扩展环境 Liferay Ext" 涉及到的是Liferay门户平台的一个关键概念,Liferay Ext是用于扩展和定制Liferay功能的核心工具。Liferay是一个开源的企业级内容管理平台,它允许用户根据需求构建自定义的数字...
在这个“liferay详细讲解 liferay项目完全讲解”的资料包中,我们可以期待深入了解到关于Liferay的核心概念、开发实践以及与其相关的技术。 首先,我们看到一个名为“JBPM数据库表说明.doc”的文件,这暗示了...
这个名为"Liferay合集.zip"的压缩包包含了多本关于Liferay的重要书籍,如《Liferay in Action》、《Liferay Portal Systems Development》和《Liferay User Interface Development》,以及一些中文文档,这些资源...
以上知识点覆盖了Liferay 6.2的主要开发和使用方面。通过"01-Liferay Portal 6.2 Developer's Guide.docx"和"02-using-liferay-portal-6.2.pdf"提供的官方文档,开发者可以深入学习这些概念和技术,从而更好地利用...
在Liferay中,使用一系列特定的标签来增强和定制门户的界面与交互功能。以下是对Liferay中常用标签的详细说明: 1. **URL** - **JSPPortlet**:Liferay 提供的 JSP Portlet 标签主要用于生成portlet的渲染URL和...
"plugins开发指南13-liferay中使用ldap分析.pdf"讨论了Liferay与LDAP(轻量级目录访问协议)的集成,这对于大型企业需要与现有用户目录系统同步的场景非常有用。最后,"plugins开发指南19-liferay6中使用JSON.pdf...
**Liferay平台开发使用详细PPT演示文稿** 在企业信息化建设中,Liferay平台作为一个强大的企业门户系统,被广泛应用于构建内部协作平台、对外展示网站以及业务流程管理。本PPT演示文稿深入介绍了Liferay的核心特性...
Liferay中的AUI框架,官方叫做Alloy,是一...准确来说AUI是Liferay在YUI的基础上进行的Liferay扩展,以方便Liferay的一些实际应用和扩展。AUI的很多语法结构、使用方法都都和YUI相关不太多。熟悉YUI的能够快速熟悉AUI。
### Liferay快速入门知识点详解 #### 一、Liferay Portal简介与快速启动 Liferay Portal是一款功能强大且灵活的企业级门户平台,它基于Java技术,遵循JSR-168标准,提供了丰富的特性来满足企业内外部网站的需求。...
- 由于Liferay开发环境需要使用UTF-8编码,而Eclipse默认使用GBK编码,因此需要更改Eclipse的编码设置。 - 依次点击 `Window` > `Preferences` > `General` > `Workspace`,在 `Text file encoding` 处选择 `Other...
本书针对Liferay,讲解了数据库优化、内存管理、缓存策略以及监控工具的使用,帮助读者提升Liferay的运行效率和响应速度。 以上书籍覆盖了Liferay开发、管理和优化的多个方面,无论你是初学者还是经验丰富的开发者...
- **内置Liferay服务**:列举了一些Liferay内置的服务,如User Service和Group Service。 - **安全性和权限**:探讨了如何实现安全性和权限控制,确保数据的安全访问。 通过以上章节的学习,开发者可以全面掌握...