Hi,

I'm trying to deploy a webapp to Tomcat 8.0.39 on CentOS 7 x86_64 that depends 
on native shared libraries.  I can't install the shared libraries in a 
system-wide location because there are multiple applications/webapps being 
deployed to this system that use different versions of the same native shared 
libraries.  We're already running two instances of Tomcat to isolate the 
webapps from one another.  Here's what's going on:

Tomcat #1 (/opt/tomcatwx) - The webapp described below is able to find all 
necessary native shared libraries

bin/setenv.sh source's bin/setenv-wx.sh.

bin/setenv-wx.sh appends 
-Djava.library.path=/usr/lib64:/lib64:/lib:/usr/lib:/opt/tomcatwx/lib/gdal to 
JAVA_OPTS.

conf/catalina.properties appends 
,"${catalina.home}/lib/gdal","${catalina.home}/lib/gdal/*.jar" to common.loader.

lib/gdal contains the following files:
drwxr-xr-x. 2 tomcatwx root     4096 Apr 16 01:06 data
-rw-r--r--. 1 tomcatwx root   134785 Apr 16 00:59 gdal.jar
-rwxr-xr-x. 1 tomcatwx root    86176 Apr 16 00:59 libgdalconstjni.so
-rwxr-xr-x. 1 tomcatwx root  1911144 Apr 16 00:59 libgdaljni.so
-rwxr-xr-x. 1 tomcatwx root 93499064 Apr 16 00:59 libgdal.so
-rwxr-xr-x. 1 tomcatwx root   222448 Apr 16 00:59 libgnmjni.so
-rwxr-xr-x. 1 tomcatwx root   968920 Apr 16 00:59 libogrjni.so
-rwxr-xr-x. 1 tomcatwx root   483536 Apr 16 00:59 libosrjni.so
-rw-r--r--. 1 tomcatwx root   335488 Apr 16 15:28 libproj.so
-rw-r--r--. 1 tomcatwx root     2021 Apr 16 01:06 ./lib/gdal/data/gdalicon.png
-rw-r--r--. 1 tomcatwx root    19884 Apr 16 01:06 ./lib/gdal/data/gdalvrt.xsd
-rw-r--r--. 1 tomcatwx root   234839 Apr 16 01:06 ./lib/gdal/data/gdal_datum.csv
-rwxr-xr-x. 1 tomcatwx root  1911144 Apr 16 00:59 ./lib/gdal/libgdaljni.so
-rwxr-xr-x. 1 tomcatwx root    86176 Apr 16 00:59 ./lib/gdal/libgdalconstjni.so
-rw-r--r--. 1 tomcatwx root   134785 Apr 16 00:59 ./lib/gdal/gdal.jar
-rwxr-xr-x. 1 tomcatwx root 93499064 Apr 16 00:59 ./lib/gdal/libgdal.so


Tomcat #2 (/srv/tomcat) - The webapp described below is unable to find a native 
shared library referenced by the JNI shared library.
Native library load failed.
java.lang.UnsatisfiedLinkError: /srv/tomcat/lib/3p/libgdaljni.so: 
libgdal.so.20: cannot open shared object file: No such file or directory

bin/setenv.sh source's bin/setenv-3p.sh.

bin/setenv-3-.sh appends -Djava.library.path=/srv/tomcat/lib/3p to JAVA_OPTS.

conf/catalina.properties appends 
,"${catalina.home}/lib/3p","${catalina.home}/lib/3p/*.jar" to common.loader.

lib/3p contains the following files:
drwxr-xr-x. 2 tomcat tomcat     4096 Dec  5 20:04 gdal
-rwxr-xr-x. 1 tomcat tomcat   128680 Dec  5 20:06 libgdalconstjni.so
-rwxr-xr-x. 1 tomcat tomcat  1982984 Dec  5 20:06 libgdaljni.so
lrwxrwxrwx. 1 tomcat tomcat       17 Dec  5 20:04 libgdal.so -> 
libgdal.so.20.3.101632
lrwxrwxrwx. 1 tomcat tomcat       17 Dec  5 20:04 libgdal.so.20 -> 
libgdal.so.20.3.101632
-rwxr-xr-x. 1 tomcat tomcat 93494552 Dec  5 20:04 libgdal.so.20.3.101632
-rwxr-xr-x. 1 tomcat tomcat   294464 Dec  5 20:06 libgnmjni.so
-rw-r--r--. 1 tomcat tomcat  3409872 Jul 15  2016 libjhdf5.so
-rw-r--r--. 1 tomcat tomcat  1268496 Jul 15  2016 libjhdf.so
-rwxr-xr-x. 1 tomcat tomcat  1039816 Dec  5 20:06 libogrjni.so
-rwxr-xr-x. 1 tomcat tomcat   554768 Dec  5 20:06 libosrjni.so
lrwxrwxrwx. 1 tomcat tomcat       17 Dec  5 19:35 libproj.so -> 
libproj.so.12.0.03
lrwxrwxrwx. 1 tomcat tomcat       17 Dec  5 19:35 libproj.so.12 -> 
libproj.so.12.0.03
-rwxr-xr-x. 1 tomcat tomcat  1871352 Dec  5 19:35 libproj.so.12.0.03
drwxr-xr-x. 2 tomcat tomcat     4096 Dec  5 19:35 proj

webapps/myapp/WEB-INF/lib contains the JNI jar:
-rw-r--r--. 1 tomcat tomcat 134646 May  1 14:03 
webapps/myapp/WEB-INF/lib/gdal-2.2.2.jar

which references libgdaljni.so
libgdaljni.so references libgdal.so
which references libgdal.so.20
which references libgdal.so.20.3.101632

What have I failed to do that is preventing Tomcat/Java from finding the fully 
resolved libgdal.so that is in the same directory where it found libgdaljni.so?

I tried eliminating the symbolic links by copying  libgdal.so.20.3.101632 to 
libgdal.so, without success.
I tried copying the gdal-2.2.2.jar to the lib/3p directory, without success.

Thanks in advance for any help.

Scott


Reply via email to