commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Tanner <caspersg...@gmail.com>
Subject Having a problem with jsvc not finding my java class
Date Tue, 22 Apr 2014 17:01:33 GMT
I’m trying to daemonize a java class that’s doing some mail routing and built jsvc for
that purpose.  The source I used is from the commons-daemon-1.0.15-src downloaded from the
Apache site, and I’m presuming that it’s good code.  I grabbed a Linux style start/stop
script off the web and modified it for my path and class, etc (shown below).  When I run in
debug, I can clearly tell that jsvc finds the commons daemon.  But, it can’t find my class
included in eMailRouter.jar.  As far as I can tell, I have the path to the class correct and
I tested it by calling from Java rather than jsvc using this command:

java -cp /usr/share/java/commons-daemon-1.0.15.jar:/home/rtanner/Java/Workspace/eMailRouter/eMailRouter.jar
org.linfield.eMailRouter.RouterDaemon 

Since I added an otherwise unnecessary main method that simply prints out “I’m in main”,
I was able to confirm that I had found and executed the class file.    My class implements
Daemon and at this point really does nothing more (each of the required methods simply print
out their name).  So is it possible that my problem could be the class itself rather than
the start/stop script.  Would it help if I posted the Java source for the class?

Immediately below is the start/stop script:

#!/bin/sh

# Setup variables
EXEC=/usr/local/bin/jsvc
export JAVA_HOME=/usr/java/jdk1.7.0_55
export CLASS_PATH=/usr/share/java/commons-daemon-1.0.15.jar:/home/rtanner/Java/Workspace/eMailRouter/eMailRouter.jar
CLASS=org.linfield.eMailRouter.RouterDaemon
USER=root
PID=/tmp/example.pid
LOG_OUT=/tmp/example.out
LOG_ERR=/tmp/example.err

do_exec()
{
    $EXEC -debug -home $JAVA_HOME -cp $CLASS_PATH -user $USER -outfile $LOG_OUT -errfile $LOG_ERR
-pidfile $PID $1 $CLASS
}

pwd
echo $CLASS_PATH
echo $JAVA_HOME

case "$1" in
    start)
        do_exec
            ;;
    stop)
        do_exec "-stop"
            ;;
    restart)
        if [ -f $PID ]; then
            do_exec "-stop"
            do_exec
        else
            echo "service not running, will do nothing"
            #exit 1
        fi
             ;;
    *)
            echo $"usage: daemon {start|stop|restart}" #>&2
              exit 3
            ##  ;;
esac
exit


Thanks.

~ Rob






Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message