Liferay ServiceUtil和LocalServiceUtil的区别

时间:2015-04-10 07:12:18

标签: java web-services liferay

这两个工具有什么区别?我可以在官方Liferay论坛上阅读这个问题,但对我来说还不是很清楚。我可以在任何地方阅读部分解释,但我需要的是一个准确,完整和清晰的解释是什么区别。谢谢。

2 个答案:

答案 0 :(得分:4)

在Liferay中,本地服务通常“只是做工作”,没有任何权限检查。这就是为什么他们是本地的 - 你无法远程访问它们。 (事实上​​,正如Pierpaolo在评论中所述,它们只能在同一个JVM中使用,例如在同一个应用程序服务器中)。 远程服务(或只是服务)通常实现一个非常相似的接口,但在将实际执行委托给本地服务之前(或者在将数据返回给调用者之前)执行权限检查。

不要被服务名称的“远程”部分分心:您也可以在本地调用它们,它们具有本地Java接口,就像本地服务一样。如果您确定不需要权限检查,请仅调用本地服务。最佳实践是在远程服务中实现权限检查......

答案 1 :(得分:2)

通过service.xml生成liferay服务层时,可以通过以下属性控制本地和远程服务的生成:

local-service="true"代表LocalServiceUtil,它定义了您的服务层可以在portlet / portal范围内本地访问。

remote-service="true"代表ServiceUtil,它定义了您的服务层也可以通过网络服务从远程应用程序访问。