Liferay Web Services: Come importare utenti

Nell’articolo Come importare utenti da un foglio Excel[1] pubblicato su D’vel Tech Blog è stato discusso il modo d’utilizzare i Web Services esposti da Liferay con l’obiettivo di poter importare un insieme di utenti da un foglio Excel. Nell’articolo [1] non è stato trattato l’aspetto pratico ma illustrata una soluzione di cui vedremo l’implementazione nel corso di questo post.

L’intero progetto d’esempio che implementa la soluzione discussa in [1] è disponibile sul repository ImportUsersLiferayViaWS. Il progetto è basato su Maven e testato sulla versione 6.1 di Liferay Community Edition (che potrebbe comunque funzionare anche sull’edizione Enterprise).

I task eseguiti dal programma d’importazione sono i seguenti:

  • Login su Liferay con utenza di tipo amministrativo;
  • Recupero della CompanyId su base virtual host;
  • Lettura del file Excel e per ogni riga che identifica l’utente:
    • Verifica formale di alcuni campi (esempio: screen Name e Email non possono essere vuoti);
    • Verifica dell’esistenza del ruolo specificato da assegnare all’utente;
    • Verifica dell’esistenza del site o gruppo a cui assegnare l’utente;
  • Creazione degli utenti non scartati.

A questo punto vediamo quali sono i passi necessari per eseguire con successo la prima importazione di test:

  • Clonazione del repository del progetto;
  • Build del progetto via Maven;
  • Esecuzione del programma d’importazione.

Il programma d’importazione dopo la compilazione del progetto sarà disponibile all’interno della directory target (figlia della directory ImportUsersLiferayViaWS). Gli “eseguibili” java generati a fronte della compilazione sono due:

  • import-users-liferay-via-ws-0.0.1-SNAPSHOT.jar
  • import-users-liferay-via-ws-0.0.1-SNAPSHOT-jar-with-dependencies.jar

Il primo jar non contiene le dipendenze (axis, sax, etc…) mentre il secondo contiene tutte le dipendenze necessarie a runtime, quest’ultimo è ovviamente di dimensioni più grandi ma sicuramente più comodo da utilizzare.

Il primo e il secondo listato mostrano esattamente l’esecuzione dei passi visti in precedenza.

Il listato a seguire mostra invece l’avanzamento (dei vari task) del programma d’importazione.

Il programma d’importazione per impostazione predefinita (senza specificare nessun parametro) tenta di connettersi ai Web Services della vostra installazione locale di Liferay. I parametri supportati sono i seguenti:

  • -DliferayAddressProtocol: Imposta il protocollo http o https (valore predefinito: http);
  • -DliferayAddressPort: Imposta la porta TCP  (valore predefinito: 8080);
  • -DliferayAddressFQDN: Imposta il nome host o FQDN (valore predefinito: localhost);
  • -Dusername: Imposta la username dell’utente di tipo amministrativo (valore predefinito: test);
  • -Dpassword: Imposta la password (valore predefinito: test);
  • -DfileToImport: Imposta il path completo del file Excel contenente la lista degli utenti.

I primi tre parametri di configurazione devono essere specificati insieme, in caso contrario nessuno dei tre sarà tenuto in considerazione. All’avvio del programma d’importazione è possibile cadere in alcuni comuni errori “fatali” che fermano l’esecuzione del programma. Gli errori sono mostrati in console e in genere sono:

  • org.apache.axis.AxisFault(401)Unauthorized: Accade perchè le credenziali di accesso a Liferay non sono corrette;
  • org.apache.axis.AxisFault(403)Forbidden: Accade perchè che le impostazioni dei Web Services di Liferay non sono corrette;
  • org.apache.axis.AxisFault; nested exception is: java.net.ConnectException: Connection refused: Accade perchè le impostazioni di connessione non sono corrette, per questo è consigliabile accertare che i servizi di Liferay siano operativi e per ultimo che le macchine (client e server) siano nelle condizioni di poter comunicare;
  • No such file or directory: Accade perchè  il path del file Excel non è corretto o accessibile dal programma d’importazione.

L’esecuzione del programma d’importazione vista in precedenza, utilizza un file Excel di esempio presente all’interno del progetto. Utilizzando quindi il file Excel di esempio per un vostro test d’importazione, dovreste ritrovare sulla vostra istanza di Liferay, quattro nuovi utenti. Nelle figure a seguire è mostrato tramite degli screenshot il risultato dell’importazione utilizzando il file Excel di esempio.

Figura 1. I nuovi utenti importati

Figura 1. I nuovi utenti importati

 

Figura 2. Dettaglio di uno degli utenti importati

Figura 2. Dettaglio di uno degli utenti importati

Se il site specificato sul foglio Excel esiste sulla vostra istanza di Liferay allora l’utente sarà associato, in caso contrario sarà associato a quello di default (vedere Figura 3). La stessa regola vale per i ruoli (vedere Figura 4).

Figura 3. Site associati all'utente

Figura 3. Site associati all’utente

 

Figura 4. Ruoli assegnati all'utente

Figura 4. Ruoli assegnati all’utente

 Ogni utente importato è taggato con il tag “imported users” (vedere Figura 5). Applicare un tag faciliterà poi la ricerca degli stessi (vedere Figura 7). In Figura 6 è mostrato il valore applicato al campo personalizzato accountId proveniente dal foglio Excel.

Figura 5. Tag assegnato all'utente importato

Figura 5. Tag assegnato all’utente importato

 

Figura 6. Campo personalizzato

Figura 6. Campo personalizzato

 

Figura 7. Ricerca utenti importati by tag

Figura 7. Ricerca utenti importati by tag

 

Nel corso di questo articolo abbiamo avuto modo di vedere come utilizzare il progetto che implementa la soluzione illustrata in [1]. Questo progetto potrebbe essere la base di partenza per il vostro progetto d’importazione.

Bibliography

[1] Musarra, A. (2013, Nov. 18). Come importare utenti da un foglio Excel. Retrieved from D’VEL TECH BLOG: http://blog.d-vel.com/web/blog/home/-/blogs/come-importare-utenti-da-un-foglio-excel

Enhanced by Zemanta
0 Condivisioni

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...