Liferay 7 — получение комментариев к ресурсам из ADT

#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. Подробности см. В этой теме.