我为 UserLocalServiceImpl 创建了服务包装器,并在服务包装器中声明了一个新方法。但是当我使用 UserLocalServiceUtil 显式调用该方法时,编译器无法解析此方法。所以,请帮助我并告诉如何覆盖 UserLocalServiceImpl ,以便我可以在其中定义新方法。 Thanx提前..
答案 0 :(得分:1)
这不起作用。您将更改Liferay发布的API的界面,并且基本上与假定Liferay的API的任何其他插件不兼容。
虽然您在技术上可以访问Liferay的所有源代码并且可以构建Liferay的修改版本,但是引入此更改,这意味着没有任何市场插件(使用UserLocalService
)将与您的自定义版本兼容。任何OSGi组件都可以挂钩到Liferay并进入已发布API的callstack,没有OSGi插件可以扩展已发布的接口,这样原始接口就有了比Liferay发布的API更多的方法。
如果您依赖单独的函数调用,则可以做的最好的事情是:创建调用UserLocalService
的自定义服务。
此外,在Liferay 7中,您不应再使用UserLocalServiceUtil
,而应通过@Reference
注释正确注入服务依赖项。 * LocalServiceUtil类纯粹是为了向后兼容,仅用于* .WAR样式插件。
答案 1 :(得分:0)
你可以做到
UserLocalServiceUtil.getService()
然后将结果转换为自定义包装器类型。然后你应该可以调用新方法。