Creato da pastuweb.com
Share My Page
My Social Accounts
Account FaceBook Account LinkedIn Account Twitter Account Google Plus Account Git Hub

Può capitare che in progetti molto grossi si vuole dividere la logica in più plugins. In Liferay la condivisione di packages e classi Java che implementano il service.xml tra plugins dello stesso portale è abbastanza semplice.

 

Il Service Builder una volta avviato (attraverso il build-service) crea tutta l'alberatura di classi utili per l'implementazione della logica di accesso al database (DAO e DTO). Nello stesso momento crea e piazza un .jar nel path WEB-INF/lib. Di solito questo JAR è nominato con: 

nome_plugin-service.jar

Questo JAR può essere poi piazzato all'interno del ClassPath di qualsiasi altro plugin del tuo portale (NON in portali diversi) dello stesso Application Server. Puoi, volendo, piazzarlo anche solo nel Global ClassPath a livello di portale, in questo modo è visibile a TUTTI i plugins dell' applicazione.

Attenzione: copiando il JAR nel Global ClassPath ($[TOMCAT-HOME]/lib/ext) bisogna ricordarsi di elimianre il JAR dalla WEB-INF/lib del plugin che lo ha creato altrimenti si creano ambiguità ed errori.

Questa modalità permette di condividere solamente le classi sotto [vostro pacakage].service.* e [vostro pacakage].model.* quindi tutte quelle classi e interfacce generate dal solo Service Builder sul service.xml. Quindi per esempio i package custom, anche se sono sotto WEB-INF/src non vengono inclusi all'interno del JAR.

Quindi il Client potrà accedere a:

  • MyServiceLocalServiceUtil.method(...)
  • MyServiceServiceUtil.method(...) // se avete messo il remote-service=true
  • altro ancora
Uno dei problemi di questa metodologia è che ogni volta che si effettua una modifica ai DAO del plugin che funge da Service, bisogna ricordarsi di re-importarlo all'interno dei ClassPath di tutti i Client che lo utilizzano. Esiste un'altro modo per evitare questo problema, ed è l'utilizzo del "Required Deployment Context" sotto il descrittore XML: liferay-plugin-pacakge.xml
Average (1 Vote)
The average rating is 5.0 stars out of 5.