(I'm back. The new baby is doing fine, but she puts some pressure on my
programming time.)
To run integrated Tomcat and jBoss 2.0 FINAL as a daemon from Linux Redhat 7...
1) Download
http://jboss.org/newsite/bin/jboss_tomcat.zip
2) Unzip to /usr/local as /usr/local/jboss_tomcat, which will create
/usr/local/jboss_tomcat/jboss-2.0-FINAL
/usr/local/jboss_tomcat/tomcat-3.2-b7
3) Create two symbolic links:
ln -s /usr/local/jboss_tomcat/jboss-2.0-FINAL /usr/local/jboss
ln -s /usr/local/jboss_tomcat/tomcat-3.2-b7 /usr/local/tomcat
(This allows jBoss to use its default location.)
4) Copy go.sh (attached) to /usr/local/jboss/bin and set execute mode:
chmod u+x /usr/local/jboss/bin/go.sh
5) Copy jboss (attached) to /etc/rc.d/init.d and set execute mode:
chmod u+x /etc/rc.d/init.d/jboss
6) Edit /etc/rc.d/init.d/jboss and /usr/local/jboss/bin/go.sh and set
the correct location for your installation of Java. If you don't recall
where java is, try:
which java
which returns something like
/usr/java/bin/java
So the lines should be:
export JAVA_HOME=/usr/java/bin
7) Use chkconfig to create symbolic links for appropriate run levels:
chkconfig -level 2345 jboss on
(jBoss/Tomcat will now restart every time you reboot.)
8) Run:
/etc/rc.d/init.d/jboss start
9) Test: You can run the test servlet to invoke an EJB:
http://localhost:8080/jboss/index.html
10) Test: You can also view the startup log:
more /usr/local/jboss/log/server.log
11) Test: You can also view the JNDI namespace:
cd /usr/local/jboss/bin
java -jar jndiView.jar
Should show something like this:
InitialContext
+- TopicConnectionFactory
+- Optimized
+- QueueConnectionFactory
+- topic
| +- metrics
+- queue
| +- testQueue
+- NonOptimized
+- jmx:localhost:rmi
+- invokers
| +- Optimized
| +- NonOptimized
+- jmx
+- RemoteControl
Note: There's an annoying feature of this installation. You can't create a
new Context in Tomcat using server.xml because server.xml is not parsed.
The only way to create a new Context is to create a new Web application
and deploy it in /usr/local/jboss/deploy in the traditional jBoss way --
the Tomcat way won't work. This makes debugging your servlets harder.
(This is fixed in jBoss 2.1; instructions forthcoming.)
Note: There are a couple of long lines in the attached files which might
wrap, depending on e-mail connections, specifically the lines starting with
$JAVACMD $JBOSS_OPTS
and
export PATH=
################################
### Contents of go.sh
###
### (Make sure #!/bin/sh is the first line of the file and the file
### has execute permissions for root.)
################################
#!/bin/sh
#
#go.sh
# Shell script to start and stop integrated Tomcat/jBoss
export TOMCAT_HOME=/usr/local/tomcat
export JBOSS_HOME=/usr/local/jboss
export JAVA_HOME=/usr/java
JAVACMD=$JAVA_HOME/bin/java
# Minimal jar file to get JBoss started.
CLASSPATH=$CLASSPATH:$JBOSS_HOME/bin/run.jar
#next line for jBoss_FINAL-2.0
CLASSPATH="$CLASSPATH:$JBOSS_HOME/lib/jdbc2_0-stdext.jar"
CLASSPATH="$CLASSPATH:$JBOSS_HOME/lib/jboss-jaas.jar"
CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib"
CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/servlet.jar"
CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/webserver.jar"
CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/xml.jar"
CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/jaxp.jar"
CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/parser.jar"
CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/jasper.jar"
# Add the tools.jar file so that Tomcat can find the Java compiler.
CLASSPATH="$CLASSPATH:$JAVA_HOME/lib/tools.jar"
#if [ "${SPYDERMQ_HOME}X" != "X" ] ; then
# if [ -x $SPYDERMQ_HOME ] ; then
# echo "Adding jar files in ${SPYDERMQ_HOME}/lib to CLASSPATH"
# CLASSPATH="$CLASSPATH:${SPYDERMQ_HOME}/lib/spydermq.jar"
# CLASSPATH="$CLASSPATH:${SPYDERMQ_HOME}/lib/jms.jar"
# CLASSPATH="$CLASSPATH:${SPYDERMQ_HOME}/lib/jnpserver.jar"
# else
# echo "SPYDERMQ_HOME is set, but is an invalid directory"
# fi
#fi
if [ "$1" = "start" ] ; then
shift
$JAVACMD $JBOSS_OPTS -classpath $CLASSPATH -Dtomcat.home=$TOMCAT_HOME
org.jboss.Main tomcat > /dev/null 2>&1 &
echo $! > /var/run/jboss.pid
elif [ "$1" = "stop" ] ; then
shift
kill -15 `cat /var/run/jboss.pid`
rm -rf /var/run/jboss.pid
elif [ "$1" = "run" ] ; then
shift
$JAVACMD $JBOSS_OPTS -classpath $CLASSPATH -Dtomcat.home=$TOMCAT_HOME
org.jboss.Main tomcat "$@"
else
echo "Usage:"
echo "jboss (start|run|stop)"
echo " start - start jboss in the background"
echo " run - start jboss in the foreground"
echo " stop - stop jboss"
exit 0
fi
################################
### Contents of jboss
###
### (Make sure #!/bin/sh is the first line of the file and the file
### has execute permissions for root.)
################################
#!/bin/sh
#
# Startup script for JBOSS, the J2EE EJB Server
#
# chkconfig: 2345 95 15
# description: Jboss is an EJB Server
# processname: jboss
# pidfile: /var/run/jboss.pid
# config: /usr/local/jboss/conf/default/jboss.conf
# logfile: /usr/local/jboss/log/server.log
#
#
# version 1.0 -
# version 1.1 - kjenks - Start Tomcat, too.
#
# Source function library.
. /etc/rc.d/init.d/functions
#SET THE FOLLOWING LINE TO YOUR JAVA_HOME
export JAVA_HOME=/usr/java/bin
#export JAVA_HOME=/usr/java/jdk1.3 #SUN's rpm
#export JAVA_HOME=/opt/IBMJava2-13 #IBM's rpm
#SET THE FOLLOWING LINE TO YOUR CORRECT JBOSS_HOME
export JBOSS_HOME=/usr/local/jboss
export PATH=$PATH:$JBOSS_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
#IF YOU NEED SPECIAL CLASSES IN YOUR CLASSPATH
#AT STARTUP, ADD THEM TO YOUR CLASSPATH HERE
#export CLASSPATH=
RETVAL=0
# See how we were called.
case "$1" in
start)
cd $JBOSS_HOME/bin
echo -n "Starting jboss daemon: "
daemon $JBOSS_HOME/bin/go.sh start
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/jboss
;;
stop)
echo -n "Stopping jboss daemon: "
killproc jboss
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/jboss
;;
restart)
echo -n "Restarting jboss daemon: "
$0 stop
sleep 2
$0 start
;;
esac
-- Ken Jenks, http://abiblion.com/
Tools for reading.
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
List Help?: [EMAIL PROTECTED]