在借用了liferay框架而编写好一个网站后,在增加应用的时候,左边弹出的列表中会有许多用不到的portlet,这样给用户管理portlet带来了不便。
一、表面瘦身:
在liferay-portal-tomcat中的webapps/ROOT/WEB-INF文件夹下,打开liferay-display.xml文件,去掉其中没有用的<portlet id="..." />;打开portlet-custom.xml,去掉对应的<portlet>.......</portlet>。
这样,在启动liferay-portal-tomcat后,进入网站内增加应用,左边列表中不关心的portlet都不被显示。
这种瘦身只是表面的,对于改进liferay-tomcat的启动速度没有任何好处。
二、“内核”瘦身:
一个网名叫“银狐”的人曾经写过相关的文章,写得很好,只是他的说明局限于liferay4.0.0的版本,在其他版本上是不能够完全照用他的文章的做的。笔者是在5.1.2版本上调试的,所以,只能借鉴银狐所说的portlet的那部分。
删除用不到的portlet。liferay自带的portlet是部署在liferay-portal-tomcat/webapps/ROOT下,需要修改三种文件:.java(.class)文件、.jsp文件和配制文件。配制文件是程序的核心,我们就从配制文件开始进行修改。修改配制文件,删除jsp和.java(.class)文件。之后重新启动tomcat就可以了。
09年10月22日:有人提出一个办法,那就是更改liliferay-portlet中某个portlet标签:<active>false</active>,false的情况下,portlet不被加载。?有待验证。
09年11月04日:关于09年10月22日中提到的portlet不被加载的否定验证。
实验如下:在同样运行环境下,把:<active>true</active>更改成
<active>false</active>后,实验验证过程如下:
true false
启动时间(ms) 占用内存(k) 启动时间(ms) 占用内存(k)
49468 219,112 49924 219,544
50161 219,384 49650 219,636
49696 218,912 49671 218,824
49696 219,220 49745 219,280
49880 220,036 49702 219,040
49685 219,012 49669 219,256
49604 219,056 49778 218,968
49648 219,232 49797 219,052
49744 218,880 49634 219,176
49744 218,884 49786 218,940
结论:由以上实验可见,加入标签<active>false</active>后,内存和启动速度没有变化,推断portlet仍然被加载在服务中。对于减少服务器的负荷与改善启动速度,没有作用。由好处就是在Add Apllication的菜单中,可以把没有用的portlet隐藏起来。(http://www.liferay.com/zh_CN/web/guest/community/forums/-/message_boards/message/841104)
------------------------------------------------------------------------------------------------------------------
另:.jar文件修改并打包的办法:
解压jar包后,删除不需要的.class文件,然后用zip压缩一下,最后把压缩文件扩展名由.zip改成.jar就可以了。