我们从Liferay官网上下载的Liferay一般为绑定Tomcat,绑定JBoss,绑定GlasshFish。常有人问说,我能不能换一个,比如不用绑定的Tomcat呢?使用我自己安装部署的Tomcat可不可以?
当然是可以的,Liferay其实算是一个标准的J2EE程序,可以运行在大部分的主流的运行中间件中,如Tomcat、weblogic、WebShphere、GlassFish等等。现在我们就以换一个Tomcat为示例说明,
1、Liferay 6.2.0绑定的tomcat(以下以Liferay称呼代替)
2、Tomcat 7.0.50 x64(我从Tomcat的网站上下载了一个tomcat 7.0.50版本的Tomcat,为windows 64位解压版。以下以“新Tomcat”称呼代替)
3、JDK7,配置好环境变量
4、将Liferay及重新下载的Tomcat解压
1、将Liferay下面tomcat/lib里面的ext目录,复制到新tomcat的lib目录下面。
2、将新tomcat/webapps下面的ROOT目录删除,从Liferay的Tomcat/webapps下面将ROOT目录复制到新Tomcat的下面。
3、将liferay中tomcat/bin目录里面的setenv.bat(如果是linux系统则是setenv.sh)文件复制到新tomcat/bin目录下面。
4、复制liferay的tomcat下面的conf/catalina.policy与catalina.properties文件到新的tomcat/conf目录下面,覆盖新tomcat下面的文件。
5、现在双击新tomcat/bin/startup.bat(linux则时执行startup.sh),现在看到的是不是新的Tomcat里面运行的Liferay!
对以上内容的解释:
1、第一步中复制ext到tomcat中的目录中,是将liferay所依赖的公共jar包复制到公共jar包的区域;
2、这一步算是部署应用,和普通的Java Web无差异,不用特别解释说明。
3、第三步中复制的文件是做什么用呢?从名称就可以看得出来setenv.bat,设置环境变量。打开这个文件,可以看到里面的参数如下,主要为设置Tomcat运行所需的JVM参数。主要的参数有两个关键作用的,一个为-Dfile.encoding=UTF8,让JVM以UTF8编码执行,不然Liferay运行时会有乱码;第二个主要参数为
-Xmx1024m -XX:MaxPermSize=256m,在这里是设置JVM运行的内存大小,如果不设置会因为给JVM初始化的参数太小而不能正常运行。
set "CATALINA_OPTS=%CATALINA_OPTS% -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"
4、第四步复制的文件的主要作用为,让这个tomcat运行的时候会加载lib/ext目录下面的jar包,如果我们将liferay的tomcat下面的jar包复制到lib目录下面,则此步骤的内容不是非常必须的了。
通过上文的分析,我们理清了为Liferay换中间件的思路如下,主要的需要做三件事情:
1、将ext目录下的jar包,复制到目标中间件的公共jar包目录下面。
2、将ROOT目录下的内容复制到中间件的应用部署目录。
3、修改中间件的环境配置参数,让JVM以UTF8的形式运行,同时分配足够的内存。一般至少为-Xmx1024m -XX:MaxPermSize=256m
不管我们部署Liferay到Weblogic、WebSphere或其他的第三方J2EE容器中,只要做以上三个步骤,理论上Liferay都可以正常运行了(如果不正常就是Liferay bug了)。
基于以上的思路我们就可以来指导我们部署Liferay到其他中间件了,比如我们要将tomcat中的liferay迁移到Weblogic中,步骤如下:
1、安装weblogic,并建立一个域。
2、复制ext目录下的jar包,到此域的公共jar包目录下面。
3、设置JVM的编码及内存大小,编码是在startWeblogic.cmd文件中设置,内存大小是在setDomainEnv.cmd文件中设置。
4、部署Root目录到Weblogic的应用发布目录。
Weblogic的部署可以参考这篇文章《weblogic 11g部署Liferay6指南》,虽然这篇文章是早期写的,但是里面的思路和内容是没大问题的。
那现在有一个问题出来了,像上面我们部署liferay的时候是从tomcat里面复制相关内容的,是不是我要在Weblogic等其他中间件中部署时,必须要先下一个绑定Tomcat的Liferay呢?答案是否定的,不是必须的。我们分析以下上面的内容,其实我们需要的绑定版tomcat里面的内容只有两个。
1、公共的jar包。
2、Liferay的应用发布包。
这两个内容我们可以在Liferay的官网上独立下载到,地址为:http://www.liferay.com/zh/downloads/liferay-portal/additional-files。里面的依赖包即是公共的jar包,WARs包即为Liferay的应用发布包。
所以《weblogic 11g部署Liferay6指南》这篇文章中所描述的公共jar包的来源,和ROOT应用的来源也可以是上面的两个内容。
如果是我们有修改源码,想要重新打包,可以执行源码下面的build-dist.xml里面的相关ant命令。这一部分可以参考一下《Liferay 6.1开发学习(五):编译调试修改源码》。