ServiceLocator是获取Liferay服务API对象的便捷方式。
虽然默认情况下它可以作为$serviceLocator
使用Velocity模板,但我还没有找到从Java代码中获取实例的方法。
如何从Liferay 7模块(OSGI)的Java代码中获取ServiceLocator?
答案 0 :(得分:1)
虽然Velocity模板使用serviceLocator
,但Liferay模块不需要它。
在Liferay模块中获取服务的正确方法是遵循以下步骤:
1)在课程的底部,添加对服务的引用,例如:
@Reference
protected com.liferay.journal.service.JournalArticleLocalService journalArticleLocalService;
2)如果您收到错误消息,指出未找到包或类,请将相应的依赖项添加到build.gradle
文件中,例如:
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