2016-06-09 6 views
0

Ich habe gerade angefangen mit Liferay zu arbeiten und versuche, auf den neuesten Stand zu bringen. Ich habe ein Portlet-Projekt erstellt, das eine Notes-Datenbank mit REST aufruft und eine Liste der letzten Mails anzeigt.Wie erstellt man Bibliotheksfunktionen, die von Portlets auf einer Liferay-Plattform verwendet werden können?

Die nächste Aufgabe besteht darin, ein Übersichts-Portlet zu erstellen, das eine Reihe verschiedener Elemente einschließlich der Anzahl der ungelesenen E-Mails anzeigt. Ich möchte einige der Funktionen aus dem ersten Portlet wiederverwenden.

Ich habe gesehen, dass es eine ServiceBuilder gibt, die interessant aussieht, aber die Beispiele, die ich gesehen habe, sind für SQL-Datenbanken.

Gibt es eine Möglichkeit, andere Arten von Funktionen auf diese Weise verfügbar zu machen, oder sollte ich eine andere Art von Lösung suchen?

+0

Sie wissen, dass Sie mehr als ein Portlet in eine Portlet-Anwendung integrieren können? Ich meine, Sie können dieselben "Bibliotheksfunktionen" aus mehr als einem Portlet verwenden, solange beide zur selben WAR-Datei gehören. –

+0

@TobiasLiefke - ja, das habe ich gemacht. Ich habe 2 Portlet-Plugin-Projekte: eines für Notes Mail, Kalender, Kontakte etc; der andere behandelt die Schnittstelle zur Telefonzentrale (verpasste Anrufe usw.). Ich möchte eine dritte Anwendung erstellen, um eine einfache Anzahl von ungelesenen Mails, kommenden Terminen und verpassten Anrufen anzuzeigen (d. H. Funktionen aus den anderen 2 Portlet-Plugin-Projekten zu verwenden). – paul

+0

Ich habe über zwei (oder drei) Portlets in einem Portlet-Plugin-Projekt gesprochen. Es ist schwierig, auf Funktionen von einer anderen Webanwendung (= Portlet-Plugin-Projekt) zuzugreifen. Eine Lösung ist IPC (Inter Portlet Communication), aber das ist für das Event-Listening gedacht. Eine andere ist eine gemeinsame resp. globale Bibliothek in Ihrem Web-Container (z. B. 'TOMCAT_HOME/lib/ext'). Aber ich würde versuchen, alle Portlets in ein einziges Plugin-Projekt zu integrieren, bevor ich eine solche Lösung erstellen würde. –

Antwort

0

Sie können den Service Builder verwenden, um einen globalen Dienst für die Verwendung von Cross-Web-Anwendungen oder im liveray-Portal einzurichten, indem Sie die Datei service.jar in tomcat/lib/ext einfügen. Erstellen einer leeren Entität es mit nicht erstellen Sie die Tabelle in der Datenbank nur den lokalen und Remote-Service. Sie können auf diese Weise auf Ihre Entitäten oder liveray-Entitäten in der XML-Konfiguration verweisen.

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

Auf diese Weise werden wir die MyServiceLocalUtil, MyServiceUtil und die json api aufzurufen haben.