Re: [geoserver-ita] Librerie GDAL

156 views
Skip to first unread message

Daniele Romagnoli

unread,
Apr 16, 2013, 10:31:02 AM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it
Salve Roberto.
Vedo che ha compilato GDAL da sorgente. Ha anche creato i bindings JAVA mediante SWIG?

In alternativa, ha gia' provato con le librerie pronte da scaricare a questo indirizzo?
http://demo.geo-solutions.it/share/github/imageio-ext/releases/native/gdal/1.9.2/linux/

Quelli contengono gia' sia la parte nativa GDAL che i wrapper SWIG per permettere alla parte Java di accedere alla parte nativa.

Daniele


==
GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.
==

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:      +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------


2013/4/16 Roberto Marzocchi <roberto....@gmail.com>
Salve a tutti, 

avviando tomcat7 riscontro quest'errore... Failed to load the GDAL native libs. This is not a problem unless you need to use the GDAL plugins: they won't be enabled.
java.lang.UnsatisfiedLinkError: no gdaljni in java.library.path


- S.O. Linux Mint 13 (basato su Ubuntu 12.04)
- Ho compilato GDAL 1.9.2 da sorgente. 


Come si impostano le librerie gdal per java? 
Devo per forza usare i nativi di gdal? dove li devo mettere? 
In http://docs.geoserver.org/stable/en/user/data/raster/gdal.html leggo  "Extract this archive on disk and place it in a proper directory on your system." 
Immagino si tratti delle cartelle di java ma non saprei dove.. 

Grazie per l'attenzione,
R

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "GeoServer Italia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più i suoi messaggi, invia un'email a geoserver-it...@googlegroups.com.
Per postare messaggi in questo gruppo, invia un'email a geoser...@googlegroups.com.
Visita questo gruppo all'indirizzo http://groups.google.com/group/geoserver-ita?hl=it.
Per ulteriori opzioni, visita https://groups.google.com/groups/opt_out.
 
 

Roberto Marzocchi

unread,
Apr 16, 2013, 10:40:26 AM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it, daniele....@geo-solutions.it
Salve Daniele, 


Il giorno martedì 16 aprile 2013 16:31:02 UTC+2, Daniele Romagnoli ha scritto:
Salve Roberto.
Vedo che ha compilato GDAL da sorgente. Ha anche creato i bindings JAVA mediante SWIG?

Ho fatto un make da gdal/swig senza riscontare errori
 

In alternativa, ha gia' provato con le librerie pronte da scaricare a questo indirizzo?
http://demo.geo-solutions.it/share/github/imageio-ext/releases/native/gdal/1.9.2/linux/

Ho scaricato i file nativi, ma non so esattamente dove devono risiedere, immagino dentro le librerie java?
Temo che il mio sia un errore molto stupido, dovuto al fatto che non conosco il linguaggio java  


Quelli contengono gia' sia la parte nativa GDAL che i wrapper SWIG per permettere alla parte Java di accedere alla parte nativa.

Daniele
Grazie per il supporto,
Roberto 

Daniele Romagnoli

unread,
Apr 16, 2013, 11:01:28 AM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it

==
GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.
==

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:      +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------


2013/4/16 Roberto Marzocchi <roberto....@gmail.com>
Salve Daniele, 


Il giorno martedì 16 aprile 2013 16:31:02 UTC+2, Daniele Romagnoli ha scritto:
Salve Roberto.
Vedo che ha compilato GDAL da sorgente. Ha anche creato i bindings JAVA mediante SWIG?

Ho fatto un make da gdal/swig senza riscontare errori
 

In alternativa, ha gia' provato con le librerie pronte da scaricare a questo indirizzo?
http://demo.geo-solutions.it/share/github/imageio-ext/releases/native/gdal/1.9.2/linux/

Ho scaricato i file nativi, ma non so esattamente dove devono risiedere, immagino dentro le librerie java?
La parte nativa è composta da una serie di files .SO e link simbolici. Una volta estratta in una directory (esempio /opt/gdal/libs), per essere ulteriormente sicuro che la parte java funzioni sulla macchina in esame (a volte ci sono problemi di dipendenze con le stdlibc a disposizione), consiglio fare un
cd javainfo (da dentro la directory in cui è stato estratto l'archivio tar gz)
./gdalinfo.sh --version
./gdalinfo.sh --formats

Questo dovrebbe fornire una prima indicazione se la parte java è funzionante. (se non vengono lanciati messaggi di errore)

Fatto cio', (se non ci sono stati errori), dovrebbe essere sufficiente settare un LD_LIBRARY_PATH nello script di avvio di tomcat, per far puntare a quella directory.  Esempio: export LD_LIBRARY_PATH=/opt/gdal/libs
In quel modo, GeoServer dovrebbe riuscire a caricare le librerie native e i wrapper JNI.

Saluti,
Daniele

Roberto Marzocchi

unread,
Apr 16, 2013, 11:59:30 AM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it
Grazie mille per l'aiuto, Purtroppo permangono problemi che sembrano mi rendono geoserver inutilizzabile... 

Grazie alle istruzioni chiarissime, ho aggiunto correttamente le librerie gdal [GDAL Native Library loaded (version: 1.9.2)] 

tuttavia restano questi errori: 

AVVERTENZA: Failed to load the TurboJpeg native libs. This is not a problem, but the TurboJpeg encoder won't be available: java.lang.UnsatisfiedLinkError: no turbojpeg in java.library.path
AVVERTENZA: Failed to load the Kakadu native libs. This is not a problem unless you need to use the Kakadu plugin: it won't be enabled. java.lang.UnsatisfiedLinkError: no kdu_jni in java.library.path

[...]

16-apr-2013 17.51.17 org.apache.catalina.session.StandardManager doLoad
GRAVE: IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2303)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2772)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:797)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:297)
at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:470)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5282)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
16-apr-2013 17.51.17 org.apache.catalina.session.StandardManager startInternal
GRAVE: Exception loading sessions from persistent storage
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2303)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2772)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:797)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:297)
at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:470)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5282)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
16-apr-2013 17.51.17 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat7/webapps/print-servlet-2.0-SNAPSHOT.war
16-apr-2013 17.51.18 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
16-apr-2013 17.51.18 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
16-apr-2013 17.51.18 org.apache.catalina.startup.Catalina start
INFO: Server startup in 12971 ms
16-apr-2013 17.52.27 java.util.prefs.FileSystemPreferences$2 run
AVVERTENZA: Couldn't create user preferences directory. User preferences are unusable.
16-apr-2013 17.52.27 java.util.prefs.FileSystemPreferences$2 run
AVVERTENZA: java.io.IOException: No such file or directory


Ho provato a rimuovere questi pacchetti: 
imageio-ext-gdalkakadujp2-1.1.7.jar
imageio-ext-kakadu-1.1.7.jar
imageio-ext-kakadujni-5.2.6.jar
imageio-ext-turbojpeg-1.1.7.jar
turbojpeg-wrapper-1.2.1.1.jar

tuttavia l'errore cambia ma non viene risolto..


R

Daniele Romagnoli

unread,
Apr 16, 2013, 12:06:13 PM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it
Salve Roberto,

==
GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.
==

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:      +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------


On Tue, Apr 16, 2013 at 5:59 PM, Roberto Marzocchi <roberto....@gmail.com> wrote:
Grazie mille per l'aiuto, Purtroppo permangono problemi che sembrano mi rendono geoserver inutilizzabile... 

Grazie alle istruzioni chiarissime, ho aggiunto correttamente le librerie gdal [GDAL Native Library loaded (version: 1.9.2)] 

tuttavia restano questi errori: 

AVVERTENZA: Failed to load the TurboJpeg native libs. This is not a problem, but the TurboJpeg encoder won't be available: java.lang.UnsatisfiedLinkError: no turbojpeg in java.library.path
AVVERTENZA: Failed to load the Kakadu native libs. This is not a problem unless you need to use the Kakadu plugin: it won't be enabled. java.lang.UnsatisfiedLinkError: no kdu_jni in java.library.path

Questi 2 sopra non sono errori ma delle "avvertenze"... Ossia avvertono che il supporto accelerato JPEG (tramite libreria Turbo) e il supporto ai files JP2 Kakadu non sono attivi in quanto non sono state trovate le apposite librerie esterne. Non è un problema se per l'appunto NON si è interessati a questi due plugin.

 
Penso che questo errore non abbia nulla a che fare con le avvertenze precedenti sulle librerie Kakadu e Turbo.
Vediamo se qualcun altro in lista ne sa piu' su questo specifico errore...
Forse un problema di permessi?

 
Ho provato a rimuovere questi pacchetti: 
imageio-ext-gdalkakadujp2-1.1.7.jar
imageio-ext-kakadu-1.1.7.jar
imageio-ext-kakadujni-5.2.6.jar
imageio-ext-turbojpeg-1.1.7.jar
turbojpeg-wrapper-1.2.1.1.jar

tuttavia l'errore cambia ma non viene risolto..


R




Il giorno martedì 16 aprile 2013 15:35:59 UTC+2, Roberto Marzocchi ha scritto:
Salve a tutti, 

avviando tomcat7 riscontro quest'errore... Failed to load the GDAL native libs. This is not a problem unless you need to use the GDAL plugins: they won't be enabled.
java.lang.UnsatisfiedLinkError: no gdaljni in java.library.path


- S.O. Linux Mint 13 (basato su Ubuntu 12.04)
- Ho compilato GDAL 1.9.2 da sorgente. 


Come si impostano le librerie gdal per java? 
Devo per forza usare i nativi di gdal? dove li devo mettere? 
In http://docs.geoserver.org/stable/en/user/data/raster/gdal.html leggo  "Extract this archive on disk and place it in a proper directory on your system." 
Immagino si tratti delle cartelle di java ma non saprei dove.. 

Grazie per l'attenzione,
R

--

Roberto Marzocchi

unread,
Apr 16, 2013, 12:12:32 PM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it, daniele....@geo-solutions.it
Salve Daniele, 

grazie mille per il supporto. 

Temevo, erroneamente, fosse un problema collegato, ma a questo punto cercherò la soluzione concentrandomi meglio sul reale problema. 

R

Roberto Marzocchi

unread,
Apr 16, 2013, 1:43:22 PM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it, daniele....@geo-solutions.it
In merito al seguente errore all'avvio di tomcat che ho precedentemente postato:

GRAVE: IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
la soluzione sembrerebbe piuttosto semplice seguendo questa discussione http://thompsonng.blogspot.it/2011/02/tomcat-ioexception-while-loading.html


Ora ho finalmente risolto i problemi tomcat che temevo non mi facessero funzionare correttamente geoserver.
Tuttavia Geoserver continua ad andare in crash nel momento in cui provo a visualizzare un qualsiasi layer.. 

Dal log di geoserver l'unico errore che trovo sembra questo..

2013-04-16 19:32:40,227 ERROR [geotools.map] - Call MapContent dispose() to prevent memory leaks

Continuo a non capire perchè..fino a ieri visualizzavo tutto correttamente

R
geoserver.log

Daniele Romagnoli

unread,
Apr 16, 2013, 1:48:35 PM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it

==
GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.
==

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:      +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------


2013/4/16 Roberto Marzocchi <roberto....@gmail.com>

In merito al seguente errore all'avvio di tomcat che ho precedentemente postato:

GRAVE: IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
la soluzione sembrerebbe piuttosto semplice seguendo questa discussione http://thompsonng.blogspot.it/2011/02/tomcat-ioexception-while-loading.html


Ora ho finalmente risolto i problemi tomcat che temevo non mi facessero funzionare correttamente geoserver.
Tuttavia Geoserver continua ad andare in crash nel momento in cui provo a visualizzare un qualsiasi layer.. 


Salve,
cosa intende per crash? "Crasha" la VM o lancia eccezioni/errori?
Per qualsiasi Layer intende anche una comune geotiff? (Sto cercando di capire se possa essere un problema dei drivers di GDAL o se c'è un problema di fondo con geoserver... Accedendo ad una geotiff, non passa dai driver GDAL).
Che versione di Geoserver sta usando?

Daniele

Roberto Marzocchi

unread,
Apr 16, 2013, 2:06:42 PM4/16/13
to geoser...@googlegroups.com, roberto....@gter.it, daniele....@geo-solutions.it
Stavo provando a utilizzare l'ultima versione stabile (2.3.0) 

Temo proprio non dipenda da gdal.. 
Infatti l'ho testata con un geotiff, una connessione postgis e uno shapefile. In tutti e tre i casi si blocca tutto e l'unica soluzione è riavviare il server tomcat (che ora non mi da più errori).

Scorrendo le ultime righe del file log l'unico errore che riscontro è questo:
ERROR [geotools.map] - Call MapContent dispose() to prevent memory leaks

Domani cercherò di capire da cosa dipende l'errore.
 
Le cose che ho fatto ieri (da quando ho questo problema) sono state 
(i) la compilazione delle librerie GDAL con supporto ai file ECW (che effettivamente non avevo installato correttamente, ma ora sì) e 
(ii) il tentativo di configurare un proxy per apache.

In ogni caso il problema si pone senza utilizzare le librerie GDAL, nè il proxy...

Grazie molto davvero del supporto. Spero di poter risolvere e che quindi sia utile anche per altri utenti.

Roberto Marzocchi

unread,
Apr 18, 2013, 11:46:39 AM4/18/13
to geoser...@googlegroups.com, roberto....@gter.it, daniele....@geo-solutions.it
Dopo molteplici tentativi ho risolto passando a oracle-java 7, rimuovendo openjdk (http://www.lffl.org/2012/03/installiamo-java-7-su-ubuntu-1204.html) e reinstallando ex-novo tomcat7 dai repository di Ubuntu.
Sembra funzionare tutto e non darmi più errori. 

Lo comunico sul gruppo (per quanto alla fine l'errore non riguardasse strettamente le librerie gdal) sperando che il mio caso possa essere utile anche per altri

Grazie per il supporto, 
Roberto 


Simone Giannecchini

unread,
Apr 18, 2013, 11:52:31 AM4/18/13
to geoser...@googlegroups.com, Daniele Romagnoli, Roberto Marzocchi

Ciao,
In generale è preferibile usare il jdk Oracle per questioni di performance.

Bene cmq che la situazione sis ia sbloccata.

Simone.

Reply all
Reply to author
Forward
0 new messages