Mia problematica:
dopo aver installato CMDBuild su un server Ubuntu, con Tomcat 6 e Postgresql 8.3, non riesco a loggarmi all'applicazione. Viene presentata la pagina di login, ma una volta inseriti i codici di default mi da questo errore:
HTTP Status 404 - Servlet action is not available
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
Apache Tomcat/6.0.18
risposta del supporto:
L'approccio generale nell'analizzare i log di Tomcat è di cercare gli "stack trace" di Java.
Un esempio è questo:
java.io.FileNotFoundException: alfresco.log (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
... seguono diverse righe simili
Da cui è chiaro che l'applicazione non riesce a creare o aprire in scrittura il file di log di alfresco. Probabilmente l'utente con cui viene eseguito Tomcat non dispone dei privilegi necessari. La soluzione è ovviamente di cambiare l'ownership dei file nella web application (chown -R utente.gruppo cmdbuild) o eseguire tomcat con un utente con maggiori privilegi (es. root).
Un altro è questo:
java.sql.SQLException: Cannot get connection for URL jdbc:postgresql://localhost/cmdb : Connessione rifiutata: FATAL: password authentication failed for user "shark".
at org.enhydra.jdbc.standard.StandardDataSource.getConnection(StandardDataSource.java:195)
at org.enhydra.jdbc.standard.StandardPooledConnection.<init>(StandardPooledConnection.java:57)
at ...
Quindi ci sono anche problemi nella connessione al database, probabilmente perché non è stata abilitata l'autenticazione md5 in pg_hba.conf di Postgres oppure non è stato creato l'utente shark correttamente.
Le consiglio caldamente di testare inizialmente CMDBuild disabilitando Shark e Alfresco modificando WEB-INF/cmdbuild-config.xml con
<workflow active="no" ...
...
<alfresco active="no">
per poi cercare di risolvere i singoli errori di configurazione del solo CMDBuild (analizzando i log di Tomcat come le ho spiegato). In seguito abilitare Shark e procedere finché non vengono eliminati tutti gli errori relativi. Infine, dopo aver testato che Alfresco sia correttamente avviato, riabilitarlo nella configurazione di CMDBuild e risolvere gli ultariori problemi, se presenti.
purtroppo l'errore non si è risolto dopo le modifiche indicate. a questo punto suppongo che più che un errore relativo a Tomcat e applicazione, sia effettivamente un errore relativo al collegamento con postgres; il db però esiste e l'utente postgres riesce ad accedere:
root@cmdbuild:/etc/postgresql/8.3/main# su - postgres
postgres@cmdbuild:~$ psql -U postgres -W cmdb
Password for user postgres:
Welcome to psql 8.3.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
cmdb=# \db
LOG: duration: 12.468 ms
List of tablespaces
Name | Owner | Location
------------+----------+----------
pg_default | postgres |
pg_global | postgres |
(2 rows)
cmdb=#
Davide wrote:
java.io.FileNotFoundException: alfresco.log (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
... seguono diverse righe simili
Nel caso Alfresco sia disabilitato da configurazione questo errore può essere ignorato, altrimenti è sintomo di una non corretta configurazione del plugin per Alfresco.
Davide wrote:
suppongo che più che un errore relativo a Tomcat e applicazione, sia effettivamente un errore relativo al collegamento con postgres; il db però esiste e l'utente postgres riesce ad accedere:
root@cmdbuild:/etc/postgresql/8.3/main# su - postgres
postgres@cmdbuild:~$ psql -U postgres -W cmdb
Provi a controllare il file /etc/postgresql/*/main/pg_hba.conf per essere sicuro che la connessione tramite tcp (non socket unix) sia questa:
host all all 127.0.0.1/32 md5
e non quella di default:
host all all 127.0.0.1/32 ident sameuser
Per controllare se effettivamente funziona, deve utilizzare queste opzioni di psql (non serve eseguirlo da utente postgres):
psql -h localhost -U postgres cmdb
Con le opzioni da lei utilizzate infatti psql utilizzava la connessione "local" (tramite socket unix) del file pg_hba.conf, invece che la host (socket tcp) utilizzata anche dai driver JDBC di CMDBuild.
grazie mille per il supporto. Finalmente sono riuscito a far partire CMDBuild e sono molto soddisfatto già dal primo approccio. Molto completo sia nella parte amministrativa che manageriale.
Il problema era legato effettivamente alla / delle connessioni a postgres ed anche al fatto che era rimasta una connessione di tomcat appesa che però non aveva abbastanza privilegi per eseguire l'applicazione. Ora è tutto ok.