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

相关文章

IDEA中配置Tomcat全过程

《IDEA中配置Tomcat全过程》文章介绍了在IDEA中配置Tomcat的六步流程,包括添加服务器、配置部署选项、设置应用服务器及启动,并提及Maven依赖可能因约定大于配置导致问题,需检查依赖版本... 目录第一步第二步第三步第四步第五步第六步总结第一步选择这个方框第二步选择+号,找到Tomca

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它