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

2023-10-29 02:08

本文主要是介绍Liferay Portal额外研究(一):初步在新Tomcat下部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

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

2009-11-09 10:37:41 |  分类: Java-Web 阅读65 评论0   字号:   订阅

从现在开始,会把我最近在研究的开源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-name display-name portlet-class init-param expiration-cathe supports portlet-info security-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 Portal Portlet 实行按类别管理和划分用户权限。
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=蔜ALINA_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 下单独运行。

这篇关于Liferay Portal额外研究(一):初步在新Tomcat下部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/297535

相关文章

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

SpringBoot的内嵌和外置tomcat的实现方式

《SpringBoot的内嵌和外置tomcat的实现方式》本文主要介绍了在SpringBoot中定制和修改Servlet容器的配置,包括内嵌式和外置式Servlet容器的配置方法,文中通过示例代码介绍... 目录1.内嵌如何定制和修改Servlet容器的相关配置注册Servlet三大组件Servlet注册详

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

tomcat日志中文乱码问题及解决方案

《tomcat日志中文乱码问题及解决方案》文章主要介绍了在使用Tomcat时遇到的乱码问题及其解决方法,页面输出乱码可能由于server.xml配置、HTML标签、编程输出编码不一致引起,解决方法包括... 目录一、页面输出乱码1.server.XML配置未注明编码格式2.catalina.bawww.cp

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践