Liferay Portal额外研究(一):初步在新Tomcat下部署

 
Liferay额外研究(一):初步在新Tomcat下部署
 
从现在开始,会把我最近在研究的开源Portal Liferay一些心得贴出来。研究 Liferay 版本: Liferay Professional 4.0.0
 
柯自聪 兄弟写过一系列的 Liferay Portal 开发文章,参考 http://www.blogjava.net/eamoi/ 。所以基础性内容,本文不再细说,可参考柯自聪的文章或 Blog 。
 
(一)部署Liferay Portlet
       Liferay简单部署一个portlet并不是很复杂,通过WEB-INF目录下的portlet.xml、liferay-portlet.xml、liferay-display.xml描述即可。
 
 
描述
portlet.xml
portlet.xml 用来定义 Portlet 的诸如部署名称、初始化参数、支持模式、 resource bundle 等普通的初始化信息,包括: portlet-namedisplay-nameportlet-classinit-paramexpiration-cathesupportsportlet-infosecurity-role-ref 等等。其正式的规范请参考: http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd
liferay-portlet.xml
定义 Portlet 默认可用的用户组、默认模板、是否支持多个实例等,规范由 http://www.liferay.com/dtd/liferay-Portlet-app_3_5_0.dtd
liferay-display.xml
定义 Portlet 默认的所属类别。 Liferay PortalPortlet 实行按类别管理和划分用户权限。
 
       Liferay是基于Struts Template页面模版技术来实现页面的,所以Liferay默认提供了com.liferay.portlet.StrutsPortlet这个Portlet Class来完成Portlet处理的;当然为了简单对普通jsp页面的处理,Liferay也提供了com.liferay.portlet.JSPPortlet等其他Portlet Class。
 
       Liferay扩展了Portlet Mode,增加了about,config,preview,print等几种模式。所以,开发人员基于Liferay进行扩展Portlet Class需要基于com.liferay.portlet.LiferayPortlet。当然,允许直接继承javax.portlet.GenericPortlet进行扩展。
 
(二)部署Liferay 应用在新下载的Tomcat
 
       这一块耗费我不少时间,因为 Liferay 采用了其修改后的 Tomcat (实际上是 Tomcat5.5 ,这是我后来才知道的)。
       但我很不喜欢 Liferay 这种绑定方式,而且默认开发必须采用其层层 Ant Build 方式,并且绑定其 Tomcat 或其他其修改后提供的 server 。—— 当然,在 Liferay 可能认为这样可以减少开发人员对环境配置的关心。
 
       让我来看看,如何在一个新下载的 Tomcat5.0.28 上成功部署 Liferay 应用:
 
(1)       首先把 liferay 工程目录放置 Tomcat_Home/ 目录下,当然,你可以放置在 Tomcat_Home/web-apps 目录下。
(2)       其次,需要把 liferay 默认的目录下的 Common/lib/ext 目录下的一些 jar 包 copy 到 Tomcat_Home/common/lib 目录下。注意,不要放置在 ext 目录下,默认 tomcat5.0.28 是不自动加载 ext 目录下的 jar 包的,这跟 Tomcat5.5 不同。这些 jar 包主要是: hsql.jar , commons-logging.jar , log4j.jar 这三个。
(3)       把 liferay 默认的目录下的 Common/lib/ext 中的 portal-shared.jar 和 portlet.jar ,可以移到 liferay 应用的 WEB-INF/lib 中。
(4)       拷贝 Root.xml 到 Tomcat_Home\conf\Catalina\localhost 目录下,配置 webcontext 信息。并在此配置 DataSource 。注意, liferay 的默认运行中的配置是 Tomcat5.5 的写法,所以此处配置 DataSource 的写法,就必须更改为 Tomcat5.0 的写法。否则,运行过程中会抛“ Cannot create JDBC driver of class '' for connect URL 'null' ”异常 。
<Context docBase="D:\ Tomcat5028\ liferay " path="" reloadable="true">
<Resource name="jdbc/LiferayPool" auth="Container"
               type="javax.sql.DataSource"    />
<ResourceParams name="jdbc/LiferayPool">
           <parameter>
<name>factory</name>
               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
XXX (其他配置,此处略)
     </ResourceParams>
</Context>
有关 Liferay 对连接池的引用,可以去 Portal.properties 配置文件中修改。默认此配置文件已经被打在了 liferay 的 portal-ejb.jar 中。
 
(5)       配置 jaasconf 。讲 jaas.config 文件放置在 Tomcat_Home\conf 目录下。并在 catalina.bat 文件中增加 -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config 来设置 jaas 的配置 。当然,这首先一定要保证在前面的 Root.xml 的 Context 中配置 JAASRealm 。
// 注意,暂时必须把liferay应用配置成为默认根应用,否则不可以正确运行。
<Context docBase="D:\ Tomcat5028\ liferay " path="" reloadable="true">
<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>
              在 jaas.config 的文件中,设置如下内容:
PortalRealm {
     com.liferay.portal.shared.security.jaas.PortalLoginModule required;
};
              Jaas是需要被正确配置的,否则系统不可以正确登陆,而且会一直不断的访问/jaas_securit_check,而不能登陆。
 
基本上进行如上操作之后,即可在 Tomcat5.0.28 下单独运行。
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值