<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Great. Finally it worked after adding cgi-bin path to LD_LIBRARY_PATH<div><span style="font-size: 12pt;">Thanks for your continuous support. </span></div><div><div><div><br></div><div>BTW, I have registered myself to the ZOO workshop for the upcoming FOSS4G event. Hope to see you there.</div><div><br></div><div>regards</div><div>Rakesh</div><div><br><div>> Subject: Re: [Zoo-discuss] Building kernel with Java support<br>> From: gerald.fenoy@geolabs.fr<br>> Date: Wed, 27 Apr 2016 23:05:58 +0200<br>> To: rakeshuk@outlook.com<br>> <br>> Hi,<br>> I wonder if it can be of some help to add at runtime the /usr/lib/cgi-bin to the LD_LIBRARY_PATH.<br>> <br>> Can you give it a try please ?<br>> <br>> Nevertheless, to be sure the issue is about loading the libZOO.so as I suppose, it would be safer to have a look at the output of the strace command (strace ./zoo_loader.cgi …) .<br>> <br>> Hope it helps.<br>> <br>> Best regards,<br>> <br>> > Le 27 avr. 2016 à 22:21, rakesh prithiviraj <rakeshuk@outlook.com> a écrit :<br>> > <br>> > Hi,<br>> > <br>> > Actually I had both ZOO.class and libZOO.so already under /usr/lib/cgi-bin  where the kernel is also residing. See the contents of my cgi-bin<br>> > <br>> > ftep@worker-01:/usr/lib/cgi-bin$ ls -l<br>> > total 9396<br>> > -rw-r--r-- 1 root root    1726 Apr 27 18:35 HelloJava.class<br>> > -rwxr-xr-x 1 root root     979 Apr 27 16:05 HelloPy.zcfg<br>> > -rwxr-xr-x 1 root root     691 Apr 27 18:35 HelloWorldJava.zcfg<br>> > -rw-r--r-- 1 root root     804 Apr 27 18:35 JavaLongProcess.zcfg<br>> > -rwxr-xr-x 1 root root   53151 Apr 27 16:11 libZOO.so<br>> > -rw-r--r-- 1 root root     923 Apr 27 21:14 main.cfg<br>> > lrwxrwxrwx 1 root root      29 Apr 27 14:02 php -> /etc/alternatives/php-cgi-bin<br>> > -rwxr-xr-x 1 root root 9026920 Apr 20 15:50 php5<br>> > -rw-r--r-- 1 root root    1580 Apr 27 16:05 test_service.py<br>> > -rwxr-xr-x 1 root root     648 Apr 27 16:11 ZOO.class<br>> > -rwxr-xr-x 1 root root  510104 Apr 27 16:01 zoo_loader.cgi<br>> > <br>> > I also added the following [env] and [javaxx] section to main.cfg but still no luck. I am still getting the same error.<br>> > <br>> > [javaxx]<br>> > MaxPermSize=64m<br>> > <br>> > [env]<br>> > JAVA_HOME=/etc/alternatives/java<br>> > LD_LIBRARY_PATH=/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/<br>> > CLASSPATH=/usr/lib/cgi-bin<br>> > <br>> > Thanks for your help. Do you any clue on what can be wrong with classpath? I will try to explore and will let you know if I could resolve this. <br>> > <br>> > regards<br>> > Rakesh<br>> > <br>> > <br>> > > Subject: Re: [Zoo-discuss] Building kernel with Java support<br>> > > From: gerald.fenoy@geolabs.fr<br>> > > Date: Wed, 27 Apr 2016 20:58:18 +0200<br>> > > CC: zoo-discuss@lists.osgeo.org<br>> > > To: rakeshuk@outlook.com<br>> > > <br>> > > Rakesh,<br>> > > <br>> > > Sorry for this issue.<br>> > > <br>> > > On my local computer (running MacOS X) I have noticed the following definitions in my main.cfg file. Please note that I never defined . in the classpath as it should be done by the ZOO-Kernel itself at runtime prior to load your service. Maybe JAVA_HOME is of some use for you too ?<br>> > > <br>> > > [env]<br>> > > JAVA_HOME=/usr/local/default<br>> > > LD_LIBRARY_PATH=/usr/local/default/jre/lib/amd64/server<br>> > > CLASSPATH=/usr/lib/cgi-bin/jgrasstools/libs/*.jar<br>> > > <br>> > > For the Java specific sections in the same file, I have the following definitions:<br>> > > <br>> > > [javax]<br>> > > ms=512m<br>> > > <br>> > > [javaxx]<br>> > > MaxPermSize=64m<br>> > > <br>> > > I also wonder where did you place the libZOO.so generated when you have built the Java ZOO-API. You mention the ZOO.class file but not the library required for this class to be run, they should both be located in the same directory as you ZOO-Kernel.<br>> > > <br>> > > I hope it can help you to solve the issue.<br>> > > <br>> > > Best regards,<br>> > > <br>> > > > Le 27 avr. 2016 à 19:54, rakesh prithiviraj <rakeshuk@outlook.com> a écrit :<br>> > > > <br>> > > > You are right. JVM initialization error. The error message was clear when running from command line. I appreciate your help.<br>> > > > <br>> > > > I updated the main.cfg with [javax] ss=2m.<br>> > > > <br>> > > > Now the Java service at least starts. But how to define the java classpath for the service? I have ZOO.class under /usr/lib/cgi-bin but still when the service it complains "no ZOO in java classpath". I defined CLASSPATH path variable and restarted the terminal. But still the service cannot find ZOO.class<br>> > > > <br>> > > > <ows:ExceptionText>Unable to run your java process properly: Exception in thread "main" java.lang.UnsatisfiedLinkError: no ZOO in java.library.path<br>> > > > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1889)<br>> > > > at java.lang.Runtime.loadLibrary0(Runtime.java:849)<br>> > > > at java.lang.System.loadLibrary(System.java:1088)<br>> > > > at ZOO.&lt;clinit&gt;(ZOO.java:5)<br>> > > > at HelloJava.HelloWorldJava(HelloJava.java:33)<br>> > > > </ows:ExceptionText><br>> > > > <br>> > > > regards<br>> > > > <br>> > > > <br>> > > > > Subject: Re: [Zoo-discuss] Building kernel with Java support<br>> > > > > From: gerald.fenoy@geolabs.fr<br>> > > > > Date: Wed, 27 Apr 2016 19:08:52 +0200<br>> > > > > CC: zoo-discuss@lists.osgeo.org<br>> > > > > To: rakeshuk@outlook.com<br>> > > > > <br>> > > > > Races,<br>> > > > > thanks for the feedback.<br>> > > > > <br>> > > > > It does not seem there is any issue with loading the library anymore. Note looks like an issue when initializing the JVM.<br>> > > > > <br>> > > > > May I ask you to try running the same request from the command line please ? It should help to figure out what is the message about error occurred during initialization<br>> > > > > <br>> > > > > Best regards,<br>> > > > > <br>> > > > > <br>> > > > > > Le 27 avr. 2016 à 17:33, rakesh prithiviraj <rakeshuk@outlook.com> a écrit :<br>> > > > > > <br>> > > > > > Thanks for the support. It did solve the problem of missing libjvm but still I couldn't run a Java service. Execution of python service works fine.<br>> > > > > > <br>> > > > > > In the apache logs, i am seeing a different error now which is "malformed header". Also looks like the error message is incomplete as it ends in "initiali".<br>> > > > > > <br>> > > > > > [Wed Apr 27 16:28:59.579355 2016] [cgi:error] [pid 23178:tid 140126009673472] [client 193.128.33.248:63251] malformed header from script 'zoo_loader.cgi': Bad header: Error occurred during initiali<br>> > > > > > <br>> > > > > > I rebuilt the kernel, Java zoo-api and Java helloworld service and restarted Apache. But it did not help.<br>> > > > > > <br>> > > > > > regards<br>> > > > > > Rakesh<br>> > > > > > <br>> > > > > > <br>> > > > > > > Subject: Re: [Zoo-discuss] Building kernel with Java support<br>> > > > > > > From: gerald.fenoy@geolabs.fr<br>> > > > > > > Date: Wed, 27 Apr 2016 16:36:36 +0200<br>> > > > > > > CC: zoo-discuss@lists.osgeo.org<br>> > > > > > > To: rakeshuk@outlook.com<br>> > > > > > > <br>> > > > > > > Hi,<br>> > > > > > > thanks for such a complete feedback.<br>> > > > > > > <br>> > > > > > > There is one thing to modify on your local setup. You should add the path where the libjvm.so file is located to the path where ld is searching into. To achieve that, you can add a zoo-project.conf file in the following directory: /etc/ld.so.conf.d/ . Then run ldconfig and ldd again on your zoo_loader.cgi file and it should return the proper location.<br>> > > > > > > <br>> > > > > > > I hope this helps you to solve the issue.<br>> > > > > > > <br>> > > > > > > Best regards, <br>> > > > > > > <br>> > > > > > > > Le 27 avr. 2016 à 16:01, rakesh prithiviraj <rakeshuk@outlook.com> a écrit :<br>> > > > > > > > <br>> > > > > > > > Hi,<br>> > > > > > > > <br>> > > > > > > > I am trying to build zoo-kernel with Java support on 64 bit Ubuntu machine.<br>> > > > > > > > <br>> > > > > > > > /configure --with-js --with-python --with-java=/usr/lib/jvm/java-7-openjdk-amd64/<br>> > > > > > > > <br>> > > > > > > > "http://www.zoo-project.org/docs/install/installation.html#java-support-optional" assumes that the include/linux and jre/lib/i386/client/ subdirectories exist in /usr/lib/jvm/java-7-openjdk-amd64/, and that the include/linux directory contains the jni.h headers file and that the jre/lib/i386/client/ directory contains the libjvm.so file. <br>> > > > > > > > <br>> > > > > > > > As I am using OpenJDK (and not Oracle Java), <br>> > > > > > > > 1. "include/linux" has 2 files (jawt_md.h, jni_md.h) and not jni.h asabove assumption<br>> > > > > > > > 2. libjvm.so is located under /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/ (it is not under jre/lib/i386/client/ as assumed by configure option).<br>> > > > > > > > <br>> > > > > > > > The configure command did not throw any errors. Last few lines from console output are given below<br>> > > > > > > > <br>> > > > > > > > checking jni.h usability... yes<br>> > > > > > > > checking jni.h presence... yes<br>> > > > > > > > checking for jni.h... yes<br>> > > > > > > > checking for JNI_CreateJavaVM in -ljvm... yes<br>> > > > > > > > configure: creating ./config.status<br>> > > > > > > > config.status: creating Makefile<br>> > > > > > > > config.status: creating ZOOMakefile.opts<br>> > > > > > > > <br>> > > > > > > > Trying to access the Kernel CGI via Apache2 server did not work and apache logs shows the following error.<br>> > > > > > > > <br>> > > > > > > > [Wed Apr 27 14:16:27.015884 2016] [cgi:error] [pid 16337:tid 140125807777536] [client 193.128.33.248:12614] AH01215: /usr/lib/cgi-bin/zoo_loader.cgi: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory<br>> > > > > > > > [Wed Apr 27 14:16:27.015950 2016] [cgi:error] [pid 16337:tid 140125807777536] [client 193.128.33.248:12614] End of script output before headers: zoo_loader.cgi<br>> > > > > > > > <br>> > > > > > > > Also shared library dependencies command confirmed that <br>> > > > > > > > ldd zoo_loader.cgi | grep jvm<br>> > > > > > > > libjvm.so => not found<br>> > > > > > > > <br>> > > > > > > > Java is in the PATH as seen below.<br>> > > > > > > > <br>> > > > > > > > $locate libjvm.so<br>> > > > > > > > /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so<br>> > > > > > > > $echo $JAVA_HOME<br>> > > > > > > > /usr/lib/jvm/java-7-openjdk-amd64/bin<br>> > > > > > > > $echo $JDK_HOME<br>> > > > > > > > /usr/lib/jvm/java-7-openjdk-amd64/<br>> > > > > > > >  <br>> > > > > > > > Please let me know if there a way to tell .configure command the path to libjvm.<br>> > > > > > > > <br>> > > > > > > > regards<br>> > > > > > > > Rakesh<br>> > > > > > > > <br>> > > > > > > > _______________________________________________<br>> > > > > > > > Zoo-discuss mailing list<br>> > > > > > > > Zoo-discuss@lists.osgeo.org<br>> > > > > > > > http://lists.osgeo.org/mailman/listinfo/zoo-discuss<br>> > > > > > > <br>> > > > > > > <br>> > > > > > > <br>> > > > > > > Gérald Fenoy<br>> > > > > > > http://wiki.osgeo.org/wiki/User:Djay<br>> > > > > > > <br>> > > > > > _______________________________________________<br>> > > > > > Zoo-discuss mailing list<br>> > > > > > Zoo-discuss@lists.osgeo.org<br>> > > > > > http://lists.osgeo.org/mailman/listinfo/zoo-discuss<br>> > > > > <br>> > > > > <br>> > > > > <br>> > > > > Gérald Fenoy<br>> > > > > http://wiki.osgeo.org/wiki/User:Djay<br>> > > > > <br>> > > > _______________________________________________<br>> > > > Zoo-discuss mailing list<br>> > > > Zoo-discuss@lists.osgeo.org<br>> > > > http://lists.osgeo.org/mailman/listinfo/zoo-discuss<br>> > > <br>> > > <br>> > > <br>> > > Gérald Fenoy<br>> > > http://wiki.osgeo.org/wiki/User:Djay<br>> > > <br>> <br>> <br>> <br>> Gérald Fenoy<br>> http://wiki.osgeo.org/wiki/User:Djay<br>> <br></div></div></div></div>                                         </div></body>
</html>