Crearea unui portlet pentru viata de zi cu ajutorul unui wicket

Acest ghid detaliază procesul de creare a unui portlet pentru portalul Liferay utilizând cadrul Wicket.

Toate părțile din manual:

Codul sursă pentru eșantion este disponibil pe GitHub.







Salutări, dragi utilizatori ai cadrului Wicket!

Așa cum am înțeles, ați avut nevoie urgentă de a dezvolta unul sau două portleturi cu cheie redusă pentru portalul Liferay și de aceea ați decis să citiți acest ghid? Dacă da, voi încerca să vă arăt în detaliu cum să creați un portlet mic folosind Wicket.

Vreau doar să avertizez că Wicket - nu cea mai bună alegere dintre cadrele pentru crearea portlet-urilor. portlet-uri dezvoltatorii ei înșiși nu pietonale folosesc, asa ca nu se aștepta de la un bogat-unelte pentru pietonale înglobate punerea în aplicare rapidă și ușoară a tuturor caracteristicilor descrise în caietul de sarcini portlet. Ce se poate aștepta, este o anumită cantitate de „capcane“ fără acte, și să se schimbe în viitorul apropiat, această situație nu a putut fi luate în considerare. Dar, în ciuda tuturor obstacolelor, creând un portlet cu caracteristici complete pe baza Wicket este destul de posibil. Deci, dacă aveți o mulțime de zile și nopți dedicate dezvoltării Wicket'ovskih Panel'ey, Page'y și alte Component'ov, atunci puteți continua în același spirit și dezvoltarea Liferay. Cu cât mai complexe, cu atât mai valoroase, sper, va fi pentru dvs. acest ghid.

De asemenea, având în vedere faptul că vom continua să discutăm următoarele versiuni de instrumente și specificații:

  • Definirea portletului JSR-286.
  • Cadrul Apache Wicket 1.4.x.

Faptul este că în Wicket 1.4.x, spre deosebire de clasele 1.5.x pentru crearea portlet-urilor, se află încă în nucleul cadrului. În Wicket 1.5.x acestea sunt redate într-un proiect separat - wicketstuff-portlet-1.5.x.jar. Deci, puteți dezvolta portleturi și folosind Wicket 1.5.x, dar va trebui să aveți în CLASSPATH încă câteva porecle JAR.

Cred că acest ghid poate fi, de asemenea, utilizat la dezvoltarea portlet-urilor pentru Liferay versiunea 6.1.0. Cu toate acestea, trebuie amintit că, la momentul scrierii acestui portlet-pietonale înglobate nu lucrează la Liferay 6.1.0 din cauza unei erori: java.lang.IllegalArgumentException: Eroare la inițializarea WicketFilter - aveți nici un element cu o adresă URL-model care foloseste filtrul: AchievementPortlet Pentru a elimina această problemă, puteți încerca să utilizați abordarea propusă aici. Esența ei constă în faptul că trebuie doar să adăugați o linie Liferay-web-xml-ului = false în fișierul liferay-plugin-package.properties. Aceasta dezactivează un pachet bun de web-filtre utilizate Liferay pentru nevoile interne, dar suntem încă nevoie de ele, nu-i așa? Oricum, singura opțiune dezactivează crearea automată a filtrelor, și le puteți oricând să adăugați manual la Liferay-web.xml fișier imediat ce acestea sunt necesare! Dar asta eo altă poveste ...

Ce mai avem în curs de dezvoltare?

După cum sper că a devenit clar, crearea unui portlet pentru Liferay folosind Wicket va fi o adevărată provocare. Iar performanța oricărei sarcini dificile poate fi considerată într-un fel o realizare. Aceasta va fi tema portlet-ului nostru: va afișa informații despre o anumită realizare în formă de text pe pagină. Informațiile despre realizare vor fi completate în modul de editare a portletului de către acea persoană care va adăuga portlet-ul în pagină și, în viitor, îi va reaminti succesul.

Pregătirea pentru dezvoltare

Pentru a începe să dezvoltăm, trebuie să instalăm și să configuram următoarele lucruri:

Despachetează conținutul imaginii, de exemplu, în dosarul /home/user/liferay/liferay-portal-6.0.6 (în continuare - LIFERAY_HOME). Apoi drumul spre serverul de portal va fi ceva de genul /home/user/liferay/liferay-portal-6.0.6/tomcat-6.0.29 (în continuare - LIFERAY_TOMCAT_HOME).

Despachetează conținutul imaginii, de exemplu, în dosarul /home/user/liferay/liferay-plugins-sdk-6.0.6 (în continuare - LIFERAY_SDK_HOME).

3. Un element non-obligatoriu, dar de dorit este Liferay IDE - plug-in pentru Eclipse. O puteți găsi, de exemplu, în Eclipse Marketplace. Acest plugin va ajuta la reducerea timpului când efectuați operații de rutină.

Configurați mediul de dezvoltare

Așa că, mărturisești, ai instalat Liferay IDE pentru Eclipse? Pune-o? Bine facut! Cred că veți putea reflecta această realizare ca portlet după ce am dezvoltat-o.

Dar totul are timpul, dar pentru moment, atenție la panoul cu trei butoane albastre care au apărut în Eclipse după instalarea plug-in-ului:







Mai întâi, să spunem ID-ul LIferay în cazul în care este localizat SDK Plugin-uri:

  • Apelați meniul contextual al celui de-al treilea buton de pe panou, selectați elementul "Liferay SDK nou" în el.
  • Introduceți calea către directorul în care este amplasat setul SDK în câmpul "Locație" care apare. În cazul nostru, acesta este LIFERAY_SDK_HOME.
  • Închideți dialogul de proprietăți "Prerefense" făcând clic pe butonul "OK".

Adăugăm, de asemenea, un server pentru a rula Liferay de la Eclipse:

  • În meniul contextual al celui de-al treilea buton, selectați elementul "New Liferay Server".
  • În fereastra care apare, selectați tipul de server utilizat pentru a porni Liferay. În cazul nostru, acesta este "Serverul Liferay v6.0 CE (Tomcat 6)". Apăsați butonul "Next".
  • În „directorul Liferay Tomcat“ introduceți calea către serverul Tomcat folosit pentru a rula lui Liferay, adică, în cazul nostru, valoarea LIFERAY_TOMCAT_HOME.
  • Apăsăm butonul "Finalizare".

Ce se întâmplă dacă nu pot instala plug-in-ul? Poate că biroul tău are probleme cu Internetul sau vrei doar să instalezi plug-in-uri? Nu contează! Faceți următoarele:

  • Creați fișierul build.user.properties în directorul LIFERAY_SDK_HOME, în care utilizatorul este numele utilizatorului dvs. de sistem de operare, cu o singură linie:
Desigur, în loc de $ trebuie să scrieți valoarea LIFERAY_TOMCAT_HOME, adică calea spre directorul serverului Tomcat folosit pentru a începe Liferay.

  • Adăugați un server de la LIFERAY_TOMCAT_HOME ca un server Tomcat normal în Eclipse.
  • După ce serverul apare în fila "Servere", selectați "Deschidere" din meniul contextual pentru acest server.
  • În fereastra de setări pentru server care se deschide, trebuie să modificați următoarele:
    • În secțiunea "Locații server", selectați "Utilizați instalarea Tomcat".
    • În câmpul "Deployment path" de mai jos, specificați calea către directorul $ / webapps.
    • În secțiunea "Publicare", selectați "Niciodată nu se publică automat".
    • În secțiunea "Timeouts" pentru ambele termene ("Start (în secunde)" și "Stop (în secunde)"), specificați o valoare de 300 de secunde.
    • Dați clic pe linkul "Deschide configurarea de lansare", iar în fereastra care se deschide, pe fila "Argumente", specificați următoarele argumente suplimentare pentru a porni JVM:

E un caz de pălărie. Acum puteți începe și opri Liferay.

Crearea unui mediu de dezvoltare în cazul în care nu Tomcat'ovskaya de asamblare utilizat Liferay Portal nu va fi la fel de simplu cum este descris mai sus - ambele folosind Liferay IDE pentru Eclipse plug-in, și fără ea. În plus, utilizarea unui server, în plus față de Tomcat, Liferay pentru dezvoltarea este plină cu anumite restricții (de exemplu, pierderea capacității de a portlet-urile de depanare). Câteva sfaturi pentru dezvoltarea organizației, folosind non-Tomcat'ovskoy Liferay de asamblare sunt descrise, de exemplu, aici.

Deci, a sosit momentul - vom crea proiectul nostru de portlet.

Creați un portlet utilizând Liferay IDE pentru Eclipse

  • Faceți clic pe primul buton din panoul IDE al Liferay "Creați un nou proiect Liferay Plugin".
  • În fereastra afișată:
    • Introduceți "realizarea" în câmpul "Nume proiect".
    • Introduceți "Achievement" în câmpul "Nume afișat".
    • Ca tip de proiect (câmp "Tip Plugin") selectați "Portlet".

Ca rezultat, fereastra pentru crearea unui proiect de portlet va arata cam asa:

Crearea unui portlet pentru viata de zi cu ajutorul unui wicket

  • După ce faceți clic pe butonul "Finalizare", proiectul nostru va fi creat.

Crearea unui portlet fără ajutorul IDE-ului Liferay pentru Eclipse

Totul este un pic mai complicat. Dar apoi, uneori, doriți să creați un portlet în acest fel, de exemplu, dacă doriți să stocați proiectul undeva, pe lângă unul dintre dosarele Liferay Plugin-uri SDK (care Liferay IDE plug-in necesită o bază obligatorie). Executarea următorului algoritm ne va conduce la obiectivul specificat:

  • Mergeți la $ / portlet-uri și creați un proiect utilizând comanda

în funcție de ce dintre comenzile funcționează în sistemul dvs. de operare.

  • Adăugăm proiectul la Eclipse fără ajutorul plug-in-ului "Liferay IDE for Eclipse". Pentru a face acest lucru:
    • Alegeți meniul "File"> "New"> "Dynamic Web Project". Ca nume de proiect ("Nume proiect"), introduceți portlet-ul realizării, eliminați bifați "Utilizați locația prestabilită".
    • Specificați locația proiectului în câmpul "Locație".
    • Specificați serverul țintă ("Timpul de executare țintă") și versiunea modulului web ("Versiunea modulului web dinamic") pentru proiectul nostru, dați clic pe "Următorul".
    • În fila următoare, ștergeți vechiul director sursă în câmpul "Sursa dosarelor pe calea de construire" și adăugați docroot / WEB-INF / src acolo. În câmpul "Dosar de ieșire implicit" introduceți docroot / WEB-INF / clase. Dați clic pe "Următorul".
    • În fila următoare din câmpul "Content Directory", tastați docroot. Debifați "Generați descriptorul de implementare web.xml".
    • Faceți clic pe "Finalizare".
  • Pentru a evita erorile de compilare, următoarele biblioteci trebuie să fie specificate în proprietățile proiectului din fila "Java Build Path" -> "Libraries":
    • Biblioteca Tomcat a folosit Liferay (localizată pe calea LIFERAY_TOMCAT_HOME).
    • Următoarele biblioteci, amplasate de-a lungul căii $ / webapps / ROOT / WEB-INF / lib:
      • -logging.jar commons
      • UTIL-java.jar
      • UTIL-taglib.jar
      • UTIL-bridges.jar

Ca rezultat, obținem

Ca rezultat, proiectul nostru de realizare-portlet va avea următoarea structură:

Crearea unui portlet pentru viata de zi cu ajutorul unui wicket

Erori în acest caz se datorează faptului că Eclipse nu a putut analiza structura fișierului JSP. Nu este nimic de îngrijorat, mai ales că încă nu avem nevoie de acest fișier JSP.

Aveți posibilitatea să instalați portletul pe Liferay folosind Ant-Task "implementare". După pornirea serverului Liferay din cadrul Eclipse, portletul poate fi adăugat la pagina portalului și va arăta astfel:

Pentru fericirea completă, adăugăm mai multe fișiere JAR în folderul lib al proiectului:

  • wicket-1.4.x.jar
  • pietonale înglobate-extensii-1.4.x.jar
  • slf4j-api-1.y.z.jar
  • slf4j-log4j12-1.y.z.jar

În loc de x, y și z, înlocuiți numerele acelor versiuni ale bibliotecilor pe care le veți dori cel mai mult. Biblioteca 1.4.x.jar este necesară pentru noi datorită unor funcționalități AJAX conținute în ea.

Totul, acum este posibil și să începem să lucrăm.







Articole similare

Trimiteți-le prietenilor: