CMDBuild Forum

CMDBuild 1.2.2 ~ Problemi e soluzioni

Salve a tutti,

Per esigenze di sviluppo modello dati e workflow, ho deciso di installare su una macchina virtuale la versione 1.2.2 di CMDBuild. Armato di buona volontà e di entusiasmo sono partito con il mettere su Ubuntu Server 10.04, l’ottimo database PostgreSQL 8.4, Tomcat 6, eliminato OpenJDK ed installato Sun Java 6.

Configurato ed aggiornato il tutto ho scaricato il file cmdbuild.war e seguito le istruzioni del manuale. Risultato ? un calcio in faccia al momento del primo avvio…!

Dopo diverse ore di verifiche… controlli… e non poche parolacce… ho scoperto che la procedura automatica di deploy del cmdbuil.war è affetta da non pochi bugs.

Di seguito la lista delle “mancanze”:

* In /usr/share/java non vengono copiate le librerie:

 ** commons-collections-3.1.jar

 ** commons-dbcp-1.2.1.jar (funziona perfettamente anche con la commons-dbcp-1.4.jar)

 ** commons-pool-1.2.jar (funziona perfettamente anche con la commons-pool-1.5.3.jar)

 ** tomcat-dbcp.jar

* In /usr/share/java non vengono creati i simboli links:

 ** commons-collections.jar à commons-collections-3.1.jar

 ** commons-dbcp.jar à commons-dbcp-1.2.1.jar

 ** commons-pool.jar à commons-pool-1.2.jar

Nota. Con il war vengono distribuite altre librerie, ma con quelle non c’è verso di farlo andare!!! In particolare: commons-collections-2.1.1.jar, commons-dbcp-1.3-snapshit.jar e commons-pool-1.5.3.jar… basta mettere in debug l’istanza per vedere errori di ogni genere…

Ho quindi creato i symbolic links di cui sopra, sia in /usr/share/java che nella cartella /usr/share/tomcat6/lib, ho copiato il file war in /var/lib/tomcat6/webapps ed atteso qualche istante che tomcat si predisponesse per il deploy.

Prima di andare via interfaccia web di tomcat per il deploy, ho modificato il file log4j.conf in /var/lib/tomcat6/webapps/WEB-INF, la riga:

log4j.appender.R.File=${catalina.base}/cmdbuild.log

diventa:

log4j.appender.R.File=${catalina.base}/logs/cmdbuild.log

in questo modo si riescono ad avere anche i log del deploy, in caso contrario si otterrà un errore di autorizzazioni a scrivere il file di log nella ${catalina.base}.

Con questo workaround ho installato con successo diverse istanze di cmdbuild sulla stessa macchina virtuale. Nei prossimi giorni mi preoccuperò di installare Alfresco e gli altri componenti.

Spero che qualcuno trovi utili queste informazioni.

Ciao,

Grazie per la guida su come installare CMDBuild su Ubuntu 10.04 utilizzando il pacchetto della distribuzione invece che quello ufficiale di Apache, come descritto invece sul manuale di CMDBuild.

Ubuntu 10.04 è il nostro ambiente di sviluppo e le macchine virtuali che attualmente distribuiamo utilizzano Ubuntu 8.04. Per questi motivi è anche l'ambiente più testato. L'unica differenza che vedo è nell'utilizzo del pacchetto deb di Tomcat 6 al posto della distribuzione binaria scaricabile dal sito ufficiale (http://tomcat.apache.org/download-60.cgi).

Utilizzando la distruibuzione binaria non sono necessarie altre librerie. Ad esempio la libreria tomcat-dbcp.jar, che tu lamenti non essere presente, è proprio inclusa nello zip di Tomcat. In Tomcat 5.5 non lo era e infatti tale jar è presente nella cartella extras/tomcat-libs/5.5 dell'archivio di CMDBuild.

Il "deploy" del war non può e non deve alterare in alcun modo i file di sistema: non è infatti né un pacchetto deb né un installer, bensì un archivio compresso che rispetta una particolare struttura riconoscibile da ogni Servlet Container. Il deploy eseguito da Tomcat consiste nel decomprimere il file all'interno della cartella con lo stesso nome, privato dell'estensione. Inoltre i log a cui ti riferisci, poi, non sono quelli di deploy, bensì della web application stessa. Evidentemente la home directory del Tomcat da te installato non è scrivibile dalle web application, per permessi sul filesystem oppure per policy java. Ad esempio non mi stupirei se le policy di Java per il pacchetto Tomcat di Ubuntu 10.04 limitassero le connessioni verso l'application server che ospita Shark. Queste però sono problematiche di amministrazione del servlet container comuni ad ogni web application.

 

Paolo

 

 

Che il deploy non debba modificare files di sistema siamo perfettamente in accordo… ma sarebbe da aggiungere al manuale ufficiale di ricordarsi di andare a modificare la locazione del file cmdbuild.log… attualmente non se ne fa cenno alcuno.

 
Per quanto riguarda la libreria tomcat-dbcp.jar, questa non viene distribuita via repository... salvo particolari problemi legati alla mia installazione, ma di questo sinceramente non mi sono preoccupato.
 
Saluti
Paolo