Je veux ajouter la bibliothèque gdal dans Tomcat. J'ai lu bibliothèques natives non trouvées dans Tomcat mais je ne comprends pas où dans startup.bat
Je devrais ajouter -Djava.library.path
.
Les erreurs:
exception
javax.servlet.ServletException: Servlet execution threw an exception
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.Java:72)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.Java:70)
root cause
Java.lang.UnsatisfiedLinkError: org.gdal.ogr.ogrJNI.GetDriverCount()I
org.gdal.ogr.ogrJNI.GetDriverCount(Native Method)
org.gdal.ogr.ogr.GetDriverCount(ogr.Java:98)
org.geotools.data.ogr.OGRDataStore.<clinit>(OGRDataStore.Java:169)
test.Read.getKadnum(Read.Java:56)
test.Zipper.mifUnzip(Zipper.Java:139)
test.Zipper.Unzip(Zipper.Java:60)
test.uploadfile.doPost(uploadfile.Java:105)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:722)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.Java:72)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.Java:70)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.23 logs.
J'ai téléchargé gdal 64bit à partir de: http://vbkto.dyndns.org:1280/sdk/PackageList.aspx?file=release-1600-x64-gdal-1-9-mapserver-6-2.Zip
Il doit être configuré dans catalina.bat
au lieu de startup.bat.
set Java_OPTS="-Djava.library.path=/usr/Tomcat/shared/lib"
peut être mis après
:noJuliManager
set Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%
La réponse acceptée (en février 2016) est tout simplement fausse.
Vous êtes jamais censé éditer catalina.bat
/catalina.sh
. Non! (Le seul fichier dans Tomcat's bin/
dir que vous êtes censé toucher est setenv.bat
).
La bonne variable de configuration est CATALINA_OPTS
, ne pas Java_OPTS
.
Si vous êtes sous Windows, vous ne voulez pas citer la valeur de la commande SET car les guillemets font partie de la valeur réelle. (contrairement à Unix/Linux)
Il est probable que vous souhaitiez conserver ce qui se trouve déjà dans Java.library.path
.
(dans ce qui suit, je suppose que vous êtes sous Windows, changez en conséquence pour Linux/Solaris/Mac OSX).
Voici comment procéder: placez un fichier appelé setenv.bat
dans le même répertoire que catalina.bat
. Le fichier n'existera pas, sauf si vous l'avez créé vous-même précédemment. Créez donc le fichier. Il doit avoir le contenu suivant pour votre objectif:
set CATALINA_OPTS=%CATALINA_OPTS% -Djava.library.path=%PATH%;c:\mydlls
Sous Windows Java.library.path
par défaut sera %PATH%
donc une alternative à tout ce qui précède aurait été de changer votre variable d'environnement PATH.
Si vous ne voulez pas avoir de confusion sur l'endroit exact où la JVM chargera vos bibliothèques natives, omettez le %PATH%;
partie de ce qui précède. Personnellement, j'omets %PATH%
pour cette raison mais c'est une question de goût.
Selon les commentaires sur catalina.bat, je pense que le bon endroit est CATALINA_OPTS.
rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
rem "run" or "debug" command is executed.
rem Include here and not in Java_OPTS all options, that should
rem only be used by Tomcat itself, not by the stop process,
rem the version command etc.
rem Examples are heap size, GC logging, JMX ports etc.