2016-12-12 5 views
1

Мы начинаем наш первый проект Liferay 7, и я уже застрял.Использование LocalServiceUtils в Liferay 7

Я хотел бы создать портлет, который считывает данные из таблицы DDMContent. К счастью, существует DDMContentLocalServiceUtil.

Я борюсь за то, как на самом деле его использовать.

Я добавил его в файл build.gradile, как это:

compileOnly group: "com.liferay", name: "com.liferay.dynamic.data.mapping.api", version: "3.1.0" 

я добавил его в файл bnd.bnd, как это:

Import-Package: com.liferay.dynamic.data.mapping.api;version=3.1.0 

И тогда я включил в моем классе портлета например:

@Reference 
    public void setContentLocalServiceUtil(DDMContentLocalServiceUtil contentLocalServiceUtil) { 
     this.contentLocalServiceUtil = contentLocalServiceUtil; 
    } 

Портлет компилируется и начинает развертываться, но я никогда не дойду до точки, где я действительно могу использовать потому что он никогда не полностью развернут. Нет исключения, и нет намека на то, что я сделал неправильно.

Является ли мой номер версии правильно? Нужно ли добавить его в файл bnd.bnd? Кто может мне помочь?

С наилучшими пожеланиями,

Daniel

ответ

4

1) Вы должны использовать

Import-Package: * 

и пусть BND решить, что для Вас, основываясь на файле фляги вы компилируете против (тот, который вы имеете в Gradle)

2) Не импортируйте классы <Name>LocalServiceUtil. Это не службы OSGi. Вместо этого используйте <Name>LocalService. Это интерфейсы, которые определяют контракты. В вашем случае это должно быть:

@Reference 
public void setContentLocalService(DDMContentLocalService contentLocalService) { 

3) Если пакет не запускается должным образом, подключиться к Gogo оболочки (telnet localhost 11311) и проверить его статус. Используйте команду diag или просто попробуйте вручную запустить ее с start <bundleId>, и структура скажет вам, что с ней что-то не так.

+0

работает отлично! – Breiti

Смежные вопросы