两个portlet具有相同的数据库

时间:2013-05-15 09:43:30

标签: liferay portlet liferay-6 liferay-ide

我正在开发Liferay门户网站,我有一个portlet处理门户网站的管理员端,一个客户端端。问题是客户端无法看到管理员页面(包括portlet)。我还为门户创建了自定义DataBase(我使用Service Builder在Liferay数据库中包含了我自己的表)。现在我想使用相同的数据库,以便我可以使用客户端portlet从中获取信息。

有什么想法吗?

我正在使用Liferay 6.1和Eclipse的Tomcat和Liferay SDK插件。

3 个答案:

答案 0 :(得分:2)

您可以从Web-Inf / lib复制[portlet name] -service.jar,并将其粘贴到任何其他portlet的lib文件夹中。如果您可以使用maven执行此操作并将此jar添加为依赖项,那就更好了。这样,您就可以访问您的服务提供的Util Classes,以及任何其他Portlet

答案 1 :(得分:0)

插件项目中的所有portlet共享该插件所做的服务构建器服务(因为它们最终在一个war文件中,因此共享运行时上下文)。因此,您可以将两个portlet放在同一个插件中,并且它们都可以访问该插件的服务构建器服务/表。我想你会发现这是一种常用的方法。您提及的权限和可见性问题不受此组织的影响。

这样做可以简化部署 - 只需部署插件的战争,完成。

如果有超出您控制范围的原因需要将portlet放在单独的插件中,那么它就变得更难了 - yannicuLar的方法是单向的。

答案 2 :(得分:0)

如果您有两个共享相同表/实体的portlet,则可以将service.jar复制到 tomcat-7.0.27 \ lib \ ext这是一个公共位置,这两个portlet可以在运行时访问这个.jar。