Ah! Thanks Jeff, you are right, thanks. I checked and the OpenJDK installed is not the full JDK (??? confusing). I had to install the OpenJDK-dev to get the full JDK.
I managed to build the jsvc (yeah!), now I am getting an error after starting tomcat using daemon.sh, it seems that it runs a root, not tomcat as I configured setenv.sh. tomcat cannot create some dirs, reported in catalina-daemon.out. If I launch tomcat without being root, I get this error: [ec2-user@ip-10-34-89-185 bin]$ ./daemon.sh start Cannot set group id for user 'tomcat' Error validating user 'tomcat' Not sure what this means, I have a tomcat user in the tomcat group. If I launch tomcat using that command: sudo ./daemon.sh start with setenv.sh: export CATALINA_HOME=/datadisk1/tomcat export CATALINA_OPTS="-server -Xms128M -Xmx512M" export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre export TOMCAT_USER=tomcat then catalina-daemon.out shows: Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener init SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.24 Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener init SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.24 Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener init SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.24 Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener init SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.24 Aug 24, 2012 1:29:11 PM org.apache.catalina.core.AprLifecycleListener init SEVERE: An incompatible version 1.1.22 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.24 Aug 24, 2012 1:29:11 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] Aug 24, 2012 1:29:11 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] Aug 24, 2012 1:29:11 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1316 ms Aug 24, 2012 1:29:12 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Aug 24, 2012 1:29:12 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.29 Aug 24, 2012 1:29:12 PM org.apache.catalina.startup.HostConfig start *SEVERE: Unable to create directory for deployment: /datadisk1/tomcat/conf/Catalina/localhost* Aug 24, 2012 1:29:12 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /datadisk1/tomcat/webapps/examples Aug 24, 2012 1:29:12 PM org.apache.catalina.core.StandardContext postWorkDirectory *WARNING: Failed to create work directory [/datadisk1/tomcat/work/Catalina/localhost/examples] for context [/examples] * Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions <init> *SEVERE: The scratchDir you specified: /datadisk1/tomcat/work/Catalina/localhost/examples is unusable.* Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /datadisk1/tomcat/webapps/ROOT Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext postWorkDirectory WARNING: Failed to create work directory [/datadisk1/tomcat/work/Catalina/localhost/_] for context [] Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions <init> SEVERE: The scratchDir you specified: /datadisk1/tomcat/work/Catalina/localhost/_ is unusable. Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /datadisk1/tomcat/webapps/docs Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext postWorkDirectory WARNING: Failed to create work directory [/datadisk1/tomcat/work/Catalina/localhost/docs] for context [/docs] Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions <init> SEVERE: The scratchDir you specified: /datadisk1/tomcat/work/Catalina/localhost/docs is unusable. Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /datadisk1/tomcat/webapps/manager Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext postWorkDirectory WARNING: Failed to create work directory [/datadisk1/tomcat/work/Catalina/localhost/manager] for context [/manager] Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions <init> SEVERE: The scratchDir you specified: /datadisk1/tomcat/work/Catalina/localhost/manager is unusable. Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /datadisk1/tomcat/webapps/host-manager Aug 24, 2012 1:29:13 PM org.apache.catalina.core.StandardContext postWorkDirectory WARNING: Failed to create work directory [/datadisk1/tomcat/work/Catalina/localhost/host-manager] for context [/host-manager] Aug 24, 2012 1:29:13 PM org.apache.jasper.EmbeddedServletOptions <init> SEVERE: The scratchDir you specified: /datadisk1/tomcat/work/Catalina/localhost/host-manager is unusable. Aug 24, 2012 1:29:13 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Aug 24, 2012 1:29:13 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Aug 24, 2012 1:29:13 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 1613 ms I am not sure my "export TOMCAT_USER=tomcat" is right, or if I am missing something. Regards, Fred On Fri, Aug 24, 2012 at 12:01 PM, Jeff MAURY <jeffma...@jeffmaury.com>wrote: > Fred, > > you are getting confused by the term OpenJDK. It comes in two flavor, JRE > and JDK. I have some .h files on my Ubuntu server, but not under > /usr/lib/jvm/java-1.6.0-openjdk but under /usr/lib/jvm/java-6-openjdk > > Regards > Jeff > > > On Fri, Aug 24, 2012 at 8:52 AM, Fred Janon <fja...@gmail.com> wrote: > > > Hi Jeff, > > > > Thanks, but I read the instructions and requirements for a C compiler an > > the JDK. As shown in my original message there is a JDK > > > > > /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/* > > > > but no "jni_md.h" in the Open JDK. As I said the "jni_md.h" seems to be > in > > the Windows JDK, but not in the Linux one. > > > > Cheers, > > > > Fred > > > > On Fri, Aug 24, 2012 at 7:51 AM, Jeff MAURY <jeffma...@jeffmaury.com> > > wrote: > > > > > You need a JDK to be installed on your machine and it seems you've > only a > > > JRE > > > > > > Jeff > > > > > > > > > On Thu, Aug 23, 2012 at 10:12 PM, Fred Janon <fja...@gmail.com> wrote: > > > > > > > Hi, > > > > > > > > I am trying to build the Unix deamon jsvc in AWS EC2 Linux. I did not > > > > install Tomcat7 that comes with the AWS Linux, I downloaded Tomcat7 > > from > > > > the Apache Tomcat website, I installed it and ran Tomcat7 > successfully. > > > Now > > > > I am trying to build the daemon to run Tomcat7 as a daemon. I get an > > > error > > > > running the "configure" script as indicated in the Tomcat > > documentation. > > > I > > > > did a lot of searching on the web and cannot find a solution to this > > > issue. > > > > I am not fluent in shell scripting, so my understanding of > "configure" > > is > > > > very limited. > > > > > > > > Do I need to regenerate the "configure" script or do I need to modify > > the > > > > script? > > > > > > > > The error is: > > > > *checking for JDK os include directory... Cannot find jni_md.h in > > > > /usr/lib/jvm/jre/* > > > > *configure: error: You should retry --with-os-type=SUBDIR* > > > > * > > > > * > > > > It looks like *"jni_md.h"* is part of the Windows JDK, *but it's not > in > > > the > > > > Linux OpenJDK on CentOS.* > > > > > > > > I don't really understand why the message says "*with-os-type*" where > > it > > > > seems to mean JDK? > > > > > > > > As indicated in the INSTALL.txt below, I am reporting the issue, > hoping > > > > that someone can give me a solution or a patch for the script... > > > > > > > > "Depending on your JDK layout, configure might fail to find the JNI > > > > machine dependant include file (jni_md.h). If that's the case use the > > > > --with-os-type=<subdir> parameter where subdir points to the > directory > > > > within JDK include directory containing jni_md.h file. > > > > If your operating system is supported, configure will go thru > cleanly, > > > > otherwise it will report an error (please send us the details of your > > > > OS/JDK, or a patch against the sources)." > > > > > > > > Below is the console output running configure and some information > > about > > > > the jdk installed. > > > > > > > > [ec2-user@ip-10-244-162-78 unix]$ *./configure* > > > > *** Current host *** > > > > checking build system type... i686-pc-linux-gnu > > > > checking host system type... i686-pc-linux-gnu > > > > checking cached host system type... ok > > > > *** C-Language compilation tools *** > > > > checking for gcc... gcc > > > > checking for C compiler default output file name... a.out > > > > checking whether the C compiler works... yes > > > > checking whether we are cross compiling... no > > > > checking for suffix of executables... > > > > checking for suffix of object files... o > > > > checking whether we are using the GNU C compiler... yes > > > > checking whether gcc accepts -g... yes > > > > checking for gcc option to accept ANSI C... none needed > > > > checking for ranlib... ranlib > > > > checking for strip... strip > > > > *** Host support *** > > > > checking C flags dependant on host system type... ok > > > > *** Java compilation tools *** > > > > *checking for JDK os include directory... Cannot find jni_md.h in > > > > /usr/lib/jvm/jre/* > > > > *configure: error: You should retry --with-os-type=SUBDIR* > > > > > > > > [ec2-user@ip-10-244-162-78 unix]$ find / -name 'jni_md.h' > 2>/dev/null > > > > > > > > [ec2-user@ip-10-244-162-78 unix]$ find / -name '*jni*' 2>/dev/null > > > > /usr/share/java-jni > > > > > > > > > > > > > > /datadisk1/tomcat/bin/commons-daemon-1.0.10-native-src/windows/src/javajni.c > > > > > > > > > > > > > > /datadisk1/tomcat/bin/commons-daemon-1.0.10-native-src/windows/include/javajni.h > > > > > > > > Installed Packages > > > > java-1.6.0-openjdk.i686 installed > > > > > > > > ---------------------------------------- > > > > [ec2-user@ip-10-244-162-78 unix]$ *./configure > > > > -with-java=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre* > > > > *** Current host *** > > > > checking build system type... i686-pc-linux-gnu > > > > checking host system type... i686-pc-linux-gnu > > > > checking cached host system type... ok > > > > *** C-Language compilation tools *** > > > > checking for gcc... gcc > > > > checking for C compiler default output file name... a.out > > > > checking whether the C compiler works... yes > > > > checking whether we are cross compiling... no > > > > checking for suffix of executables... > > > > checking for suffix of object files... o > > > > checking whether we are using the GNU C compiler... yes > > > > checking whether gcc accepts -g... yes > > > > checking for gcc option to accept ANSI C... none needed > > > > checking for ranlib... ranlib > > > > checking for strip... strip > > > > *** Host support *** > > > > checking C flags dependant on host system type... ok > > > > *** Java compilation tools *** > > > > checking JAVA_HOME... /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre > > > > *checking for JDK os include directory... Cannot find jni_md.h in > > > > /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/* > > > > *configure: error: You should retry --with-os-type=SUBDIR* > > > > > > > > ----------------------------------------- > > > > configure script excerpt: > > > > > > > > echo "$as_me:$LINENO: checking for JDK os include directory" >&5 > > > > echo $ECHO_N "checking for JDK os include directory... $ECHO_C" >&6 > > > > JAVA_OS=NONE > > > > if test -f $JAVA_HOME/$JAVA_INC/jni_md.h > > > > then > > > > JAVA_OS="" > > > > else > > > > for f in $JAVA_HOME/$JAVA_INC/*/jni_md.h > > > > do > > > > if test -f $f; then > > > > JAVA_OS=`dirname $f` > > > > JAVA_OS=`basename $JAVA_OS` > > > > echo " $JAVA_OS" > > > > break > > > > fi > > > > done > > > > if test "x$JAVA_OS" = "xNONE"; then > > > > echo "$as_me:$LINENO: result: Cannot find jni_md.h in > > > > ${JAVA_HOME}/${OS}" >&5 > > > > echo "${ECHO_T}Cannot find jni_md.h in ${JAVA_HOME}/${OS}" >&6 > > > > { { echo "$as_me:$LINENO: error: You should retry > > > > --with-os-type=SUBDIR" >&5 > > > > echo "$as_me: error: You should retry --with-os-type=SUBDIR" >&2;} > > > > { (exit 1); exit 1; }; } > > > > fi > > > > fi > > > > > > > > ----------------------------------------- > > > > > > > > Thanks > > > > > > > > Fred > > > > > > > > > > > > > > > > -- > > > Jeff MAURY > > > > > > > > > "Legacy code" often differs from its suggested alternative by actually > > > working and scaling. > > > - Bjarne Stroustrup > > > > > > http://www.jeffmaury.com > > > http://riadiscuss.jeffmaury.com > > > http://www.twitter.com/jeffmaury > > > > > > > > > -- > Jeff MAURY > > > "Legacy code" often differs from its suggested alternative by actually > working and scaling. > - Bjarne Stroustrup > > http://www.jeffmaury.com > http://riadiscuss.jeffmaury.com > http://www.twitter.com/jeffmaury >