Liferay 具有相同数据库的两个portlet

Liferay 具有相同数据库的两个portlet,liferay,portlet,liferay-6,liferay-ide,Liferay,Portlet,Liferay 6,Liferay Ide,我正在开发Liferay门户,我有一个处理门户管理员端和客户端的portlet。问题是客户端无法看到管理员页面(包括portlet)。此外,我还为门户创建了自定义数据库(我使用ServiceBuilder在Liferay数据库中包含了自己的表)。现在我想使用相同的数据库,这样我就可以使用客户机portlet从中获取信息 有什么想法吗 我将Liferay 6.1与Tomcat和Liferay SDK插件一起用于Eclipse 您可以从Web Inf/lib复制[portlet name]-serv

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

有什么想法吗


我将Liferay 6.1与Tomcat和Liferay SDK插件一起用于Eclipse

您可以从Web Inf/lib复制[portlet name]-service.jar,并将其粘贴到任何其他portlet的lib文件夹中。如果您可以使用maven实现这一点,并将此jar添加为依赖项,则效果会更好。通过这种方式,您可以访问您的服务提供的Util类,以及任何其他Portlet

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

这样做可以简化部署——只需部署插件的war,就可以了


如果有超出您控制范围的原因要求Portlet位于单独的插件中,那么这将变得更加困难——yannicuLar的方法是一种方法。

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

如果使用Liferay的插件SDK,效果会更好,在
liferay plugin package.properties中设置
required deployment context
,它将在编译时自动复制最新的部署上下文,并确保在其服务使用的插件之后进行部署。@rp听起来很酷,老实说,我不知道该功能。谢谢分享