#java #templates #liferay #adt #freemarker
#java #шаблоны #liferay #adt #freemarker
Вопрос:
Я пытаюсь получить комментарии к записи в ADT. Я попробовал это:
<#assign MBMessageLocalServiceUtil = serviceLocator.findService("com.liferay.message.boards.kernel.service.MBMessageLocalServiceUtil")>
<@getCommentCount resourcePrimKey=article.getResourcePrimKey()/>
<#macro getCommentsCount resourcePrimKey>
<#assign Messages = MBMessageLocalServiceUtil.getMessages("com.liferay.portlet.journal.model.JournalArticle", resourcePrimKey, 0) />
<#assign MessagesCount = Messages?size-1 />
<#if MessagesCount != 0>
(Comments: ${MessagesCount} )
</#if>
</#macro>
Затем он выдает мне эту ошибку:
The following has evaluated to null or missing:
==> serviceLocator.findService("com.liferay.message.boards.kernel.service.MBMessageLocalServiceUtil") [in template "20116#20160#38923" at line 35, column 54]
Я действительно понятия не имею, что я делаю не так.
Я уже использовал ServiceLocator на этом портале, и он работает. Удаляются переменные и классы, ограниченные Freemarker.
У кого-нибудь есть идея для решения?
Ответ №1:
Для доступа к комментариям к записи можно использовать действие /comment.commentmanagerjsonws/get-comments из api liferay jsonws. Этот api доступен для Javascript / curl / URL, он должен сделать свое дело.
Ответ №2:
В Liferay 7 конфигурация была перенесена из portal.properties
новой конфигурации OSGi. Подробности см. В этой теме.