2016-06-09 7 views
0

Я только что начал работать с Лиферэй, и я пытаюсь встать на ноги. Я создал проект портлета, который вызывает базу данных Notes с помощью REST и отображает список последних писем.Как создать библиотечные функции, которые могут использоваться портлетами на платформе Liferay?

Следующая задача - создать общий портлет, который отображает множество различных элементов, включая количество непрочитанных писем. Я хотел бы повторно использовать некоторые функции из первого портлета.

Я видел, что есть ServiceBuilder, который выглядит интересным, но примеры, которые я видел, предназначены для баз данных SQL.

Есть ли способ показать другие возможности этого способа или я должен смотреть на другое решение?

+0

Вы знаете, что вы можете интегрировать более одного портлета в одно приложение портлета? Я имею в виду, что вы можете использовать одни и те же «библиотечные функции» из более чем одного портлета, поскольку оба они принадлежат одному и тому же WAR-файлу. –

+0

@TobiasLiefke - да, я сделал это. У меня есть два проекта плагина для портлетов: один для почты Notes, календарь, контакты и т. Д .; другой - интерфейс к телефонной станции (пропущенные вызовы и т. д.). Я хочу создать третье приложение, чтобы показать простой подсчет непрочитанных писем, предстоящих встреч и пропущенных вызовов (т. Е. Использование функций из других 2 проектов плагинов портлетов). – paul

+0

Я говорил о двух (или трех) портлетах в одном проекте плагина портлета. Трудно получить доступ к функциям из другого веб-приложения (= проект плагина портлета). Одним из решений является IPC (inter portlet communication), но это предназначено для прослушивания событий. Другой - общий. глобальной библиотеки в вашем веб-контейнере (например, 'TOMCAT_HOME/lib/ext'). Но я бы попытался интегрировать все портлеты в один проект плагина, прежде чем создавать такое решение. –

ответ

0

Вы можете использовать сервис-конструктор, чтобы глобальная служба использовала кросс-веб-приложения или портал liferay, поместив service.jar в tomcat/lib/ext. Построение пустого объекта, чтобы он не создавал таблицу в db только для локальной и удаленной службы. Вы можете ссылаться на свои сущности или объекты liferay в xml-конфигурации таким образом.

<entity name="MyService" local-service="true" remote-service="true"> 
     <reference entity="User" package-path="com.liferay.portal" /> 
    </entity> 

Таким образом, мы будем иметь MyServiceLocalUtil, MyServiceUtil и JSon апи для вызова.