如何从Liferay模块获取ServiceLocator?

时间:2017-05-24 09:04:09

标签: liferay

ServiceLocator是获取Liferay服务API对象的便捷方式。

虽然默认情况下它可以作为$serviceLocator使用Velocity模板,但我还没有找到从Java代码中获取实例的方法。

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

1 个答案:

答案 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