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