You are not logged in.

#1 2011-07-21 02:42:50

liuexp
Member
Registered: 2011-05-10
Posts: 6

Why the new Tomcat 7.0.19 failed to locate JAVA_HOME?

Yesterday I upgraded from tomcat 7.0.16 => 7.0.19
and now

rc.d start tomcat7

would fail with:

:: Starting tomcat7 daemon                                               [BUSY]
Cannot locate Java Home
                                                                                      [FAIL]

It's still just working right before I hit pacman -Syu.........

while I try reinstalling jdk/jre or go back to tomcat 7.0.16,
it doesn't make any difference.
And I'm sure that I've set $JAVA_HOME and $JRE_HOME correctly.

But strange enough, when I try su to root and /etc/rc.d/tomcat7 start
It works.
but when I tried sudo /etc/rc.d/tomcat7 start
It failed like before.

I also tried /usr/share/tomcat7/bin/setclasspath.sh and it works if i'm root already,
or it would failed giving similar message if i try sudo.

Offline

#2 2011-08-14 07:56:51

milo
Member
Registered: 2011-08-14
Posts: 5

Re: Why the new Tomcat 7.0.19 failed to locate JAVA_HOME?

Hi! i've solved this problem for me by adding "TOMCAT_JAVA_HOME=/opt/java \" in /etc/rc.d/tomcat file like described here: https://wiki.archlinux.org/index.php/Tomcat_and_Apache

Offline

#3 2012-03-27 06:45:48

Aegidius
Member
From: Italy
Registered: 2011-06-29
Posts: 288
Website

Re: Why the new Tomcat 7.0.19 failed to locate JAVA_HOME?

Hi! I changed my /etc/rc.d/tomcat7 file like this

#!/bin/bash

daemon_name=tomcat7
TOMCAT_JAVA_HOME=/opt/java \

. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/${daemon_name}

case "$1" in
  start)
    stat_busy "Starting ${daemon_name} daemon"

    PID=$(get_pid 'jsvc.exec')
    if [ -z "$PID" ]; then
      [ -f /var/run/${daemon_name}.pid ] && rm -f /var/run/${daemon_name}.pid
      # RUN
      /usr/bin/jsvc \
        -Dcatalina.home=${CATALINA_HOME} \
        -Dcatalina.base=${CATALINA_BASE} \
        -Djava.io.tmpdir=/var/tmp/tomcat7/temp \
        -cp /usr/share/java/commons-daemon.jar:/usr/share/java/eclipse-ecj.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
        -user tomcat \
	-java-home ${TOMCAT_JAVA_HOME} \
        -wait 10 \
        -pidfile /var/run/${daemon_name}.pid \
        -errfile /var/log/tomcat7/catalina.err \
        -outfile /var/log/tomcat7/catalina.out \
        ${CATALINA_OPTS} \
        org.apache.catalina.startup.Bootstrap

      if [ $? -gt 0 ]; then
        stat_fail
        exit 1
      else
        add_daemon ${daemon_name}
        stat_done
      fi
    else
      stat_fail
      exit 1
    fi
    ;;

  stop)
    stat_busy "Stopping ${daemon_name} daemon"
    # STOP
    /usr/bin/jsvc \
      -pidfile /var/run/${daemon_name}.pid \
      -stop \
      org.apache.catalina.startup.Bootstrap
    #
    if [ $? -gt 0 ]; then
      stat_fail
      exit 1
    else
      rm -f /var/run/${daemon_name}.pid &> /dev/null
      rm_daemon ${daemon_name}
      stat_done
    fi
    ;;

  restart)
    $0 stop
    sleep 3
    $0 start
    ;;

  status)
    stat_busy "Checking ${daemon_name} status";
    ck_status ${daemon_name}
    ;;

  *)
    echo "usage: $0 {start|stop|restart|status}"
esac

exit 0

but it still give me the Cannot locate Java Home error.

Offline

Board footer

Powered by FluxBB