如何从Liferay模块获取ServiceLocator?

如何从Liferay模块获取ServiceLocator?,liferay,Liferay,是获取Liferay服务API对象的方便方法 虽然Velocity模板默认使用$serviceLocator,但我还没有找到从Java代码中获取实例的方法 如何从Liferay 7模块OSGI的Java代码中获取ServiceLocator?当Velocity模板使用ServiceLocator时,Liferay模块不需要它 在Liferay模块中获取服务的正确方法是遵循以下步骤: 1在类的底部,添加对服务的引用,例如: @Reference protected com.liferay.jour

是获取Liferay服务API对象的方便方法

虽然Velocity模板默认使用$serviceLocator,但我还没有找到从Java代码中获取实例的方法


如何从Liferay 7模块OSGI的Java代码中获取ServiceLocator?

当Velocity模板使用ServiceLocator时,Liferay模块不需要它

在Liferay模块中获取服务的正确方法是遵循以下步骤:

1在类的底部,添加对服务的引用,例如:

@Reference
protected com.liferay.journal.service.JournalArticleLocalService journalArticleLocalService;
compileOnly group: "com.liferay", name: "com.liferay.journal.api", version: "2.6.1"
compileOnly group: "com.liferay", name: "com.liferay.journal.service", version: "3.11.5"
2如果出现错误,说明找不到包或类,则向build.gradle文件添加相应的依赖项,例如:

@Reference
protected com.liferay.journal.service.JournalArticleLocalService journalArticleLocalService;
compileOnly group: "com.liferay", name: "com.liferay.journal.api", version: "2.6.1"
compileOnly group: "com.liferay", name: "com.liferay.journal.service", version: "3.11.5"
然后退出IDE并运行:

./gradlew clean eclipse

是什么阻止你通过@Reference声明正确的依赖关系?@OlafKock:谢谢你的提示!我查阅了@Reference,这确实是我所需要的!我试着根据你的建议写一个答案,我是一个初学者,但我希望它是正确的:-就是这样。在你的问题的评论中为我节省了一些打字时间;