Liferay使用管理中的一些常见问题

2013年05月17日 Liferay 暂无评论 阅读 16,876 views 次

以前写过一篇:Liferay 6.1开发学习(十八):Liferay开发过程中的一些常见问题,那篇文章主要关注开发过程中的一些问题,此篇文章主要关注管理部分的常见问题,不定期持续更新。

在数据库中删除了数据,在portlet中数据还存在

在Liferay的管理中,有时候我们需要手动的去修改数据库里面的信息,但是修改完成之后,发现在Portlet中的数据并没有改变,这是因为数据库缓存的原因,Liferay默认情况下的取数据是从缓存中取的,不是直接从数据库中的,所以如果我们手动的修改了数据库,需要清除一下数据库缓存,方法如下:

进入控制面板-->服务器-->服务器管理-->清除数据库缓存,再次刷新Portlet页面,数据就会和数据库中的保持一致如下图:

清除数据库缓存

注意:虽然我们可以直接手动的修改数据库,但是一般情况下不推荐直接的调整数据库内容,特别是Liferay本身自带的一些表,如用户、组织机构、页面、站点等表,修改可能问题不大,直接删除数据可能会造成数据的不能访问,因为这些核心表,与其他表有不少关联,在删除的时候可能会导航数据不完整,从而导致页面不能访问等异常情况。除非是已经非常清楚这些表与表的关系,数据的关联,否则修改这些核心表请慎重。

将部署WAR包放到了deploy下面没有反应

这种情况一般出现在我们修改了环境,比如将环境从开发的机器到复制到了生产服务器上面,发现将war包丢到deploy目录下面没反应,tomcat不会自己开始部署,这个原因一般是由于liferay.home位置错的原因。由于环境的改变,导致liferay.home的目录还是指向的开发的目录,这个时候修改portal-setup-wizard.properties里面的Liferay.home目录,让他指向tomcat所在的目录即可。

 com.liferay.portlet.documentlibrary.DuplicateFileException: welcome_bg_3.jpg

在Liferay启动的时候报有,如下的错误com.liferay.portal.kernel.messaging.MessageListenerException: com.liferay.portlet.documentlibrary.DuplicateFileException: welcome_bg_3.jpg。

这个错误其实不影响,如果不想折腾,忽略就行,不影响任务功能的使用。

如果想解决,删除tomcat/webapps下面的welcome-theme和resources-importer-web目录,然后重启即可。

那这个问题是啥意思?为什么会有时候出现,有时候不出现呢?

这个错误的意思是告诉我们welcome_bg_3.jpg图片已经存在了,不能再次导入。这个图片存在于resources-importer-web目录里面,在tomcat加载welcome-theme的时候,里面有资源导入程序,会将这个图片导入到liferay的文档媒体库中,第一次运行的时候导入资源,但是有时候当再次运行的时候,有时还会再加载这个资源导入程序,导入的时候Liferay发现这个文件在我的文档媒体库中已经有了,就报一个这样的错误:告诉我们这个文件已经存在,不能再导入了。Liferay默认不能导入重名的文件。

Liferay中如何删除用户

经常见到有人问,Liferay中怎么删除用户?Lifery中的用户不能直接一次性删除,需要先将用户调整为不活跃状态(撤销),然后才能删除。方法步骤如下:

1、在控制面板的用户和组织里面,找到相应的用户,点击操作中的“撤销”(这个翻译的有点蛋疼,准确翻译注销更合适)

2、点击用户那里搜索所有用户,状态选择为不活跃,搜索

3、在这里就可以对相应的用户进行删除操作

如何让没有登录的用户只能看到登录页面

有一些业务系统我们需要没有登录的用户只能看到登录页面,其他页面都看不到。在讲实现之前,首先我们要理解一点,在Liferay中准确来的讲登录页面是一个拥有登录portlet的页面,和我们普通的web开发页面有差异,只要在页面上有登录的portlet,所有的页面都可以是登录页面。

在liferay默认情况下,我们可以在http://localhost:8080/c/portal/login进入登录页面,当我们访问一个没有权限的页面的也会跳转到这个登录页面。所以现在归纳一下就是要满足两种情况:

1、当用户进入网站首页的时候看到的是登录页面。

2、当用户访问没有权限的页面的时候进入登录页面。

我们实现上面两点即可,针对1则是在首页上只添加登录的portlet;针对2则是将功能portlet都放到guest(未登录用户)没有查看权限的页面上了。具体步骤如下:

1、liferay的站点有公有页面和私有页面,公有页面默认是guest都有查看权限,私有页面默认guest没有查看权限,所以将所有的功能点都放到私有页面上。

2、公有页面只保留一个页面,默认的guest/home即可(不要将此页面的guest查看权限也去掉,至少要保留一个guest可以访问的公有页面,不然没有登录的用户没有任何页面的权限,怎么进入登录页面?),在此页面上添加“登录”的portlet。

3、默认的没有权限或session超时会跳转到/c/portal/login页面,如果我想跳转到/guest/login页面怎么办?在portal.properties里面设置 auth.login.url=/web/guest/login

用户头像

给我留言

您必须 登录 才能发表留言!

Copyright © IT人生录 保留所有权利.   主题设计 知更鸟 滇ICP备16001547号

用户登录

分享到: