[EMAIL PROTECTED] wrote: > > That's a bit problematic... > > I think it'll work fine if LD_LIBRARY_PATH is set before starting tomcat > to include all the libs ( and libapr ) or of libapr ( and the rest ) are > installed in the system dirs ( i.e. /usr/lib ).
It works better ;-) using System.loadLibrary() and set the LD_LIBRARY_PATH before starting the JVM solves problem of finding the path. System.loadNative("/usr/local/lib/libapr.so"); could be changed into System.loadLibrary(apr); The remaing problem are the dependencies of libapr.so How to load the needed libraries? loadLibrary() does not make the symbols available to other libraries. (like dlopen(RTLD_NOW|RTLD_GLOBAL)). > > The code in loadNative() was trying to work around and not require the > user to set LD_LIBRARY_PATH, but including all deps is ugly. > > I suppose having libapr in lib path is a 'decent' requirement and we > should drop the workaround. > > Using the .a lib is imho the worst solution - and I'm not sure how it'll > interact with the jni connector ( when apr syms will be loaded twice ). If there is only one *.so file that is no problem. Using a dynamic libapr was a lot of problems in mod_webapp. > > Costin > > On Mon, 14 Jan 2002, jean-frederic clere wrote: > > > Hi, > > > > I am playing with jk2 and I have noted that the loadNative() in AprImpl fails: > > +++ > > java.lang.UnsatisfiedLinkError: > > /home/jakarta/jakarta-tomcat-4.0.1/webapps/jk/WEB-INF/jk2/jni/libapr.so: > > /home/jakarta/jakarta-tomcat-4.0.1/webapps/jk/WEB-INF/jk2/jni/libapr.so: > > undefined symbol: crypt > > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1382) > > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1277) > > at java.lang.Runtime.load0(Runtime.java:698) > > at java.lang.System.load(System.java:797) > > at org.apache.jk.apr.AprImpl.loadNative(AprImpl.java:90) > > at org.apache.jk.apr.AprImpl.loadNative(AprImpl.java:78) > > at org.apache.jk.common.ChannelUn.init(ChannelUn.java:135) > > +++ > > The problem is that apr needs other dynamic library. > > > > How should we solve the problem?: > > 1 - Loading the missing libraries in the JVM (via System.load()) The list of > > needed library is in APRVARS. > > 2 - Link jni_connect.so against a static libapr.a (like in mod_webapp for > > Apache-1.3). > > something like: gcc -shared -lm -lcrypt -lnsl -ldl -o jni_connect.so ... > > libapr.a > > > > Any comments? > > > > Cheers > > > > Jean-frederic > > > > -- > > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>