`
sumongh
  • 浏览: 227314 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

一些Liferay小问题的分析

阅读更多

一些Liferay小问题的分析

5.1 Admin这个Portlet中的Server管理权限的分析
如果设置Portal的companyid不是liferay.com,缺省情况下,没有用户能够对admin这个Portlet中的Server部分进行设置。简单分析一下这部分的代码,找一个比较好的解决方法。
5.1.1 代码分析
JSP文件是/portal/portal-web/docroot/html/portlet/admin/server.jsp,其中的关键代码为
<c:if test="<%= OmniadminUtil.isOmniadmin(user.getUserId()) %>">
也就是通过OmniadminUtil.isOmniadmin进行用户权限的判断。
在这段代码里面,主要流程为:
  首先判断userid是否为空,如果为空,直接返回false
  然后判断配置文件portal.properties里面,指定的omniadmin.users 是否有当前用户。
  最后判断当前用户是否是系统管理员角色。
5.1.2 解决方法
分析了一下代码之后,解决方法其实也很简单。有两个方案
5.1.2.1 指定管理员
在portal-ext.properties文件中添加或修改内容
omniadmin.users=liferay.com.1,mycompany.com.1
这样,新站点的第一个用户将具有管理权限。
5.1.2.2 由系统管理员角色实现
在portal-ext.properties文件中添加或修改内容
omniadmin.users=
这样,所有的系统管理员角色的用户都具有相应的权限。
5.2 Liferay的Applet编辑器调用的一个BUG
今天网友边尘,说到journal中编辑Structure和Template的Applet编辑器部署好像不成功。粗略试了一下,在我的环境中没有发现这个问题。因为所用版本不同,我的是4.1.2,他的是4.1.3。开始怀疑是版本的问题。
经过查看源码,原来是JSP代码有点问题。
文件portal\portal-web\docroot\html\portlet\journal\edit_template_xsl.jsp的117行,archive="editor-signed.jar",而实际上这个jar文件不存在,在目录portal\portal-web\docroot\applets下的相应文件是editor.jar。
后来,网友把JSP代码进行了简单修改,editor-signed.jar修改为editor.jar之后,重新运行就成功了。初步得出结论,是4.1.3不知什么原因,把文件名搞错了。
后来我又仔细看了一下4.1.2的代码,发现也是同样的问题。那为什么我当初没有发现问题呢?原来是,Structure编辑的JSP代码是正确的,而Template编辑的JSP代码有错误。而我,正好用到的是Structure的编辑器。
最终的结论单点说:
1、 是Template编辑的JSP页面有错误,修改。
2、 并不是4.1.3才出现的问题,4.1.2的情况是一样的。
至于为什么代码里面是editor-signed.jar。我初步看,应该不是简单的笔误的问题。很有可能是以前版本的代码,用的是这个文件名。而我机器上原来下载的3.6的版本也被我删掉了,无从验证。如果有兴趣,可以下载一个以前的版本来验证一下。
5.3 Liferay启动很慢的一个原因
用了Liferay一段时间,发现启动的时候比较慢,特别是在出现"Auto deploy scanner started for \home\liferay\deploy"之后。
一开始,以为就是这个auto deploy导致的问题,尝试了各种方法去禁止Auto Deploy,但效果都不明显,基本上没什么变化。
今天,在看portal.properties文件内容的时候,无意中找到一点线索。原来是Liferay每次启动的时候,会自动重建索引;并且是在启动的同一个线程中完成。缺省配置如下:
# Set the following to true if you want to index your entire library of files on startup.
index.on.startup=true
# Set the following to true if you want the indexing on startup to be
# executed on a separate thread to speed up execution.
index.with.thread=false
也就是说,启动到Auto Deploy之后,需要耗较长时间,就是在进行数据的重新全文检索。了解这个之后,优化的方案也就简单了。
  关掉重建索引     index.on.startup=false
  另开线程重建索引 index.with.thread=true
两种方法,只需在portal-ext.properties文件中添加相应的设置即可。
 

分享到:
评论
1 楼 jjs_love 2008-01-29  
你好,我程序也出现了
Liferay启动很慢的一个原因
这个问题,我按照你所做的修改portal-ext.properties 文件加入
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect

index.on.startup=false

index.with.thread=true
我使用的是ORACLE数据库

但在ECLIPSE 中启动 TOMCAT 还是出现
Starting Liferay Portal Professional 4.1.3 (Cowper / Build 3103 / November 20, 2006)
Loading jar:file:/D:/liferay/tomcat/webapps/ROOT/WEB-INF/lib/portal-ejb.jar!/cache-multi-vm.properties
05:33:39,343 INFO  [ServerDetector:76] Detected server tomcat
05:33:39,546 INFO  [AutoDeployDir:76] Auto deploy scanner started for \home\liferay\deploy
还是进行
重新全文检索,要等好久,请问这是怎么回事

相关推荐

    liferay扩展环境 liferay ext

    1. **源码分析**:由于Liferay是开源的,开发者可以深入研究源码,理解其工作原理,并基于源码进行二次开发。 2. **开发工具**:除了基本的JDK和Maven,开发者可能还需要使用诸如Liferay IDE这样的专用工具,它提供...

    Liferay 6 入门教程

    "plugins开发指南13-liferay中使用ldap分析.pdf"讨论了Liferay与LDAP(轻量级目录访问协议)的集成,这对于大型企业需要与现有用户目录系统同步的场景非常有用。最后,"plugins开发指南19-liferay6中使用JSON.pdf...

    liferay6.06

    本文将深入探讨Liferay Portal的基础知识,安装配置,源码分析,开发环境设置,以及基于Struts2的Portlet应用开发等关键知识点。 1. Liferay Portal初体验: Liferay Portal是一款功能强大的企业级门户平台,支持多...

    liferay 6.0 开发指南

    - **内置Liferay服务**:列举了一些Liferay内置的服务,如User Service和Group Service。 - **安全性和权限**:探讨了如何实现安全性和权限控制,确保数据的安全访问。 通过以上章节的学习,开发者可以全面掌握...

    liferay6.1开发学习

    解决方法是找到超限的 JSP 文件,分析其内容,可能需要拆分或者优化代码以减少单个类的大小。 学习 Liferay 开发的过程中,除了上述基础配置外,还需要掌握以下技能: - Liferay 的portlet 开发,包括 MVC Portlet...

    Liferay6.0开发指南

    主题结构分析 - **缩略图**:用于预览主题样式的图片。 - **JavaScript 和 CSS**:定制页面的行为和样式。 - **设置**:调整主题的各种选项。 - **颜色方案**:定义主题的基本颜色。 - **门户预定义设置**:利用...

    liferay解决无法访问页面问题

    #### 一、问题背景与分析 在使用 Liferay 平台开发或管理网站时,可能会遇到一种常见的错误消息:“You do not have permission to view this page”。此错误提示表明当前用户账户缺少访问特定页面(在这里通常指的...

    liferay相关的代码

    通过深入源码,我们可以学习到如何在Liferay中创建portlet、theme、布局、服务等组件,以及如何处理权限、国际化和缓存等问题。此外,Liferay还使用了Hibernate进行持久化,了解这部分源码能帮助我们更好地进行...

    liferay学习

    Liferay的源码分析是学习的重要部分,通过阅读源码,开发者能够理解其内部工作机制,例如portlet的生命周期管理、主题和布局机制、权限系统以及工作流引擎等。这对于进行二次开发和定制化改造尤其关键。 工具有助于...

    liferay性能调优文档

    Liferay是一款广泛使用的开源企业级门户平台,以其灵活...以上是Liferay性能调优的一些主要方向,实际操作中需要根据具体环境和需求进行综合考虑和调整。通过深入理解和实践,我们可以使Liferay运行得更加高效和稳定。

    liferay 6.2开发指南+用户手册

    通过Liferay的控制台和日志系统,开发者可以监控应用状态、追踪错误并进行性能分析。 15. **升级与迁移** 当需要从旧版本升级到6.2时,理解迁移过程和数据迁移工具至关重要,以确保平滑过渡。 以上知识点覆盖了...

    Liferay portlet 工程示例代码

    开发者可以通过分析和修改这些示例来学习和实践Liferay Portlet开发。 以上知识点涵盖了Liferay Portlet开发的基础和关键点,通过深入研究和实践提供的"samples",开发者可以逐步掌握创建功能丰富的Liferay Portlet...

    liferay portlet demo

    开发者可以通过分析和运行这个示例,学习如何在Liferay平台上构建动态、自定义化的应用程序。 【标签】:“liferay portlet demo” “liferay”标签明确了这是关于Liferay Portal的内容,“portlet”表示与Portlet...

    liferay 文档与例子

    通过分析和运行这些例子,开发者能够快速掌握Liferay的开发技巧,并将其应用到实际项目中。 总之,"liferay 文档与例子"这个资源是Java开发者深入理解Liferay Portal并进行开发的宝贵资料。通过学习和实践,开发者...

    liferay表结构详解

    通过上述分析,我们可以看出Liferay的Layout表不仅是存储页面信息的数据仓库,更是支撑Liferay门户系统动态页面构建和个性化定制的基石。掌握Layout表的结构与功能,无疑将极大提升开发者和系统管理员在Liferay平台...

    Liferay微信登录自动登录

    文件`liferay-login`分析 压缩包中的`liferay-login`可能包含了实现微信登录功能的相关代码和配置文件,如portlet、服务、视图模板等。具体包括: - **portlet**:实现用户交互逻辑,包括展示登录按钮和处理授权...

    liferay Portal 的学习书籍

    根据提供的内容片段,我们可以了解到一些关于Liferay Portal书籍的具体信息,这本书是外国人编写的,受到好评,并且书名可能是《Liferay Portal 5.2 Systems Development》。 首先,书籍的标题《Liferay Portal 5.2...

    Liferay开发指南(中文)和liferay详细介绍(英文)

    3. **大数据集成**:如果涉及,可能会涵盖如何利用Liferay与大数据平台(如Hadoop或Spark)集成,实现数据分析和报告。 4. **移动应用开发**:Liferay的移动友好特性,以及如何为iOS和Android开发原生或混合应用。 ...

    liferay Portal 求助

    此外,熟悉日志分析也是排查问题的关键,Liferay会在运行时记录详细的日志信息,这对于定位和解决错误非常有帮助。 总之,Liferay Portal是一个复杂但功能强大的企业级门户解决方案,涵盖了从内容管理到用户管理的...

    Liferay教程

    通过以上分析可以看出,Liferay框架的强大之处在于其高度模块化的设计和丰富的工具集,这使得开发者能够快速构建复杂的应用程序。希望本文能够帮助读者更好地理解Liferay框架中的关键技术点,为后续的学习和实践打下...

Global site tag (gtag.js) - Google Analytics