Bonjour,
j'ai installé GeoSource sur un Ubuntu server LTS 12.04 sans problème (dans
/usr/local/geosource).
PostgreSQL 9.1 et Tomcat 7 sont déjà installés sur la machine.
Mon but est d'utiliser la base de donnée postgresql que j'ai installé pour
geosource et de faire tourner geosource dans tomcat.
J'ai suivi les instructions de la doc (cf. détails plus bas), mais
l'initialisation de GeoSource échoue :
2013-11-28 20:28:14,485 INFO [jeeves] - Overrides being applied to
configuration file: .*/WEB-INF/config.xml
2013-11-28 20:28:14,498 INFO [jeeves] - Replacing attribute value of node
appHandler/param[@name='preferredSchema']
2013-11-28 20:28:14,498 DEBUG [jeeves] - New attribute is:iso19139
2013-11-28 20:28:14,500 DEBUG [jeeves] - Updating attibute of node
/geonet/appHandler/param[6]
2013-11-28 20:28:14,501 INFO [jeeves] - Replacing attribute value of node
appHandler/param[@name='useSubversion']
2013-11-28 20:28:14,501 DEBUG [jeeves] - New attribute is:false
2013-11-28 20:28:14,501 DEBUG [jeeves] - Updating attibute of node
/geonet/appHandler/param[13]
2013-11-28 20:28:14,502 INFO [jeeves] - Replacing text of
general/maxUploadSize
2013-11-28 20:28:14,502 DEBUG [jeeves] - New text is:100
2013-11-28 20:28:14,502 DEBUG [jeeves] - replacing Text of
/geonet/general/maxUploadSize
2013-11-28 20:28:14,515 INFO [jeeves] - Replacing child xml elements of
resources
2013-11-28 20:28:14,526 DEBUG [jeeves] - New elements are:<toAdd>
<resource enabled="true">
<name>main-db</name>
<provider>jeeves.resources.dbms.ApacheDBCPool</provider>
<config>
<user>admin</user>
<password>gnos</password>
<driver>org.h2.Driver</driver>
<url>jdbc:h2:geonetwork</url>
<poolSize>33</poolSize>
<validationQuery>SELECT 1</validationQuery>
</config>
</resource>
</toAdd>
2013-11-28 20:28:14,527 DEBUG [jeeves] - replacingXML of /geonet/resources
2013-11-28 20:28:14,582 WARN [jeeves.dbmspool] - Using transaction
isolation setting READ_COMMITTED
2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Raised exception while
initializing resource main-db in
/usr/local/geosource/web/geosource/WEB-INF/config.xml. Skipped.
2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Resource : main-db
2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Provider :
jeeves.resources.dbms.ApacheDBCPool
2013-11-28 20:28:17,111 ERROR [jeeves.engine] - Exception :
org.apache.commons.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (IO Exception: "java.io.FileNotFoundException:
/var/lib/tomcat7/geonetwork.lock.db (Permission denied)";
"/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
2013-11-28 20:28:17,111 ERROR [jeeves.engine] - Message : Cannot
create PoolableConnectionFactory (IO Exception:
"java.io.FileNotFoundException: /var/lib/tomcat7/geonetwork.lock.db
(Permission denied)"; "/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
2013-11-28 20:28:17,112 ERROR [jeeves.engine] - Stack :
org.apache.commons.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (IO Exception: "java.io.FileNotFoundException:
/var/lib/tomcat7/geonetwork.lock.db (Permission denied)";
"/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
at
org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
[...]
D'après ces logs, je comprends bien que GeoSource ne prends pas en compte
mon config.xml et qu'il remplace ma ressource postgresql par une resource
H2. Par contre, je ne comprends pas du tout pourquoi...
La moindre piste serait la bienvenue.
*Détail de mon installation :*
J'ai créé une base de données et un utilisateur geosource.
J'ai modifié le fichier web/geosource/WEB-INF/config.xml pour utiliser ma
base de donnée :
- j'ai désactivé la base par défaut H2 :
<resource enabled="false">
<name>main-db</name>
<provider>jeeves.resources.dbms.ApacheDBCPool</provider>
<config>
<user>admin</user>
<password>gnos</password>
<driver>org.h2.Driver</driver>
<url>jdbc:h2:geonetwork;LOCK_TIMEOUT=20000;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE</url>
<poolSize>33</poolSize>
<validationQuery>SELECT 1</validationQuery>
</config>
</resource>
- et j'ai activé la base postgresql :
<resource enabled="true">
<name>main-db</name>
<provider>jeeves.resources.dbms.ApacheDBCPool</provider>
<config>
<user>geosource</user>
<password>monpassword</password>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost:5432/geosource</url>
<poolSize>10</poolSize>
<validationQuery>SELECT 1</validationQuery>
</config>
</resource>
j'ai bien vérifié qu'il n'y avait qu'une seule section resource avec
l'attribut "enable" à true.
Pour publié geosource dans tomcat, j'ai suivi les instructions de
http://trac.osgeo.org/geonetwork/wiki/HowToRunUnderTomcat
- création le fichier geosource.xml
dans /etc/tomcat7/Catalina/localhost/ :
<Context docBase="/usr/local/geosource/web/geosource"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
- j'ai rendu tomcat7 propriétaire des dossiers geosource/web
et geosource/data
- j'ai vérifié que TOMCAT7_SECURITY=no
- j'ai redémarré tomcat.
est-ce que j'ai oublié quelque chose?
Merci d'avance pour toutes vos suggestions.
Cordialement,
Mathilde Pellerin