I finally succeed make jni works on my Linux boxes 
with Apache 2.0.36 and tomcat 3.3.1

Some remarks :

1) On my configuration, the standard tomcat 3.3.1 
   run as user tomcat3, group tomcat3, but apache2
   run as user apache2, group apache2. 
   So log/spool files can't be accessed in rw mode
   since all these files are 644 to tomcat3/tomcat3.
   I saw there is a setUser APR impl but since it's 
   not a static method, it couldn't be called by
   TomcatStarter. Also shm file is owned by root,
   and so couldn't be used by childs (apache2).

=> chmod 666 /var/run/httpd2/jk2.shm


2) Tomcat3 at least allow the use of TOMCAT_HOME and
   TOMCAT_INSTALL, and in that case config files are
   in $TOMCAT_HOME/conf and tomcat.jar in $TOMCAT_INSTALL/lib.
   workers2.properties should be updated accordingly.
   I think there is a similar system for TC 4.0/4.1

export TOMCAT_HOME=/etc/tomcat3
export TOMCAT_INSTALL=/var/tomcat3

workers2.properties (nb I put tomcat-jni.jar in tomcat/lib not in tomcat/bin :

[vm:]
info=Parameters used to load a JVM in the server process
OPT=-Djava.class.path=${TOMCAT_INSTALL}/lib/tomcat-jni.jar:${TOMCAT_INSTALL}/lib/tomcat.jar
OPT=-Dtomcat.home=${TOMCAT_HOME}
OPT=-Dcatalina.home=${TOMCAT_HOME}
OPT=-Xmx128M
disabled=1

3) Under Linux we have to set many env vars before being
   able to load libjvm.so (here is what I've to do to 
   use the IBM SDK 1.3.1 :

export JAVAHOME=/opt/IBMJava2-131/jre
export LD_LIBRARY_PATH=$JAVAHOME/bin:$JAVAHOME/bin/classic:$LD_LIBRARY_PATH

Linux users running a kernel 2.4 should also add :

export LD_ASSUME_KERNEL=2.2.5

What about adding ENV params in [vm:] to setup all of these directly
from httpd2 ?

4) It seems that jni is loaded in each child (I've build apache 2.0.36
   using -with-mpm=worker on my box) and sus there is 3 jvm started and conflict
   with listen port later (8080, 8007, 8009), so we should use a lock file to
   avoid duplicate initialization


[Mon Jun 03 19:48:47 2002] [notice] caught SIGTERM, shutting down
[Mon Jun 03 19:48:55 2002] [notice] Digest: generating secret for digest 
authentication ...
[Mon Jun 03 19:48:55 2002] [notice] Digest: done
[Mon Jun 03 19:48:56 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Mon Jun 03 19:48:56 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Mon Jun 03 19:48:56 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Mon Jun 03 19:48:56 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Mon Jun 03 19:48:57 2002] [notice] Apache/2.0.36 (Unix) mod_ssl/2.0.36 OpenSSL/0.9.6b 
DAV/2 mod_jk2/2.0.0 configured -- resuming normal operations
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Mon Jun 03 19:48:57 2002] [error] Fail-> could not create JVM, code: -1
[Mon Jun 03 19:48:57 2002] [warn] jni.validate() class= org/apache/jk/apr/TomcatStarter
[Mon Jun 03 19:48:57 2002] [error] workerJni.init() Can't attach to VM
[Mon Jun 03 19:48:57 2002] [error] workerEnv.initWorkers() init failed for 
worker.jni:jniCmd1
[Mon Jun 03 19:48:57 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb
[Mon Jun 03 19:48:57 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Mon Jun 03 19:48:57 2002] [warn] mod_jk child init 1 -1
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Mon Jun 03 19:48:57 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Mon Jun 03 19:48:57 2002] [error] Fail-> could not create JVM, code: -1
[Mon Jun 03 19:48:57 2002] [warn] jni.validate() class= org/apache/jk/apr/TomcatStarter
[Mon Jun 03 19:48:57 2002] [error] workerJni.init() Can't attach to VM
[Mon Jun 03 19:48:57 2002] [error] workerEnv.initWorkers() init failed for 
worker.jni:jniCmd1
[Mon Jun 03 19:48:57 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb
[Mon Jun 03 19:48:57 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Mon Jun 03 19:48:57 2002] [warn] mod_jk child init 1 -1

which jar should be installed in tomcat lib ?
[Tue Jun 04 08:35:54 2002] [notice] Digest: generating secret for digest 
authentication ...
[Tue Jun 04 08:35:56 2002] [notice] Digest: done
[Tue Jun 04 08:35:57 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:57 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:57 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:57 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:57 2002] [notice] Apache/2.0.36 (Unix) mod_ssl/2.0.36 OpenSSL/0.9.6b 
DAV/2 mod_jk2/2.0.0 configured -- resuming normal operations
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Tue Jun 04 08:35:58 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Tue Jun 04 08:35:58 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:58 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:58 2002] [warn] vm.open2() done
[Tue Jun 04 08:35:58 2002] [warn] jni.validate() class= 
org/apache/jk/apr/TomcatStarter 
[Tue Jun 04 08:35:58 2002] [warn] vm.open2() done
[Tue Jun 04 08:35:58 2002] [warn] jni.validate() class= 
org/apache/jk/apr/TomcatStarter 
[Tue Jun 04 08:35:59 2002] [warn] Loaded org/apache/jk/apr/TomcatStarter
[Tue Jun 04 08:35:59 2002] [warn] jni.init() ARG start
[Tue Jun 04 08:35:59 2002] [warn] jni.init() calling main()...
[Tue Jun 04 08:35:59 2002] [warn] Loaded org/apache/jk/apr/TomcatStarter
[Tue Jun 04 08:35:59 2002] [warn] jni.init() ARG start
[Tue Jun 04 08:35:59 2002] [warn] jni.init() calling main()...
TomcatStarter: main()
TomcatStarter: err
TomcatStarter: out
Try  org.apache.tomcat.startup.Main
Starting org.apache.tomcat.startup.Main
No class found  
[Tue Jun 04 08:35:59 2002] [warn] vm.detach() ok
[Tue Jun 04 08:35:59 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb 
[Tue Jun 04 08:35:59 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Tue Jun 04 08:35:59 2002] [warn] mod_jk child init 1 -1
[Tue Jun 04 08:35:59 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Tue Jun 04 08:35:59 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Tue Jun 04 08:35:59 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Tue Jun 04 08:35:59 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Tue Jun 04 08:35:59 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:59 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
TomcatStarter: main()
TomcatStarter: err
TomcatStarter: out
Try  org.apache.tomcat.startup.Main
Starting org.apache.tomcat.startup.Main
[Tue Jun 04 08:35:59 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:35:59 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
No class found  
[Tue Jun 04 08:35:59 2002] [warn] vm.detach() ok
[Tue Jun 04 08:35:59 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb 
[Tue Jun 04 08:35:59 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Tue Jun 04 08:35:59 2002] [warn] mod_jk child init 1 -1
[Tue Jun 04 08:36:00 2002] [warn] jni.guessJvmDll() 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:36:00 2002] [warn] vm.init(): Jni lib: 
/opt/IBMJava2-131/jre/bin/classic/libjvm.so
[Tue Jun 04 08:36:00 2002] [warn] vm.open2() done
[Tue Jun 04 08:36:00 2002] [warn] jni.validate() class= 
org/apache/jk/apr/TomcatStarter 
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Tue Jun 04 08:36:01 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Tue Jun 04 08:36:02 2002] [warn] vm.openJvm2() Option: 
-Djava.class.path=/var/tomcat3/lib/tomcat-jni.jar
[Tue Jun 04 08:36:02 2002] [warn] vm.openJvm2() Option: -Dtomcat.home=/var/tomcat3
[Tue Jun 04 08:36:02 2002] [warn] vm.openJvm2() Option: -Dcatalina.home=/var/tomcat3
[Tue Jun 04 08:36:02 2002] [warn] vm.openJvm2() Option: -Xmx128M
[Tue Jun 04 08:36:02 2002] [warn] Loaded org/apache/jk/apr/TomcatStarter
[Tue Jun 04 08:36:02 2002] [warn] jni.init() ARG start
[Tue Jun 04 08:36:02 2002] [warn] jni.init() calling main()...
TomcatStarter: main()
TomcatStarter: err
TomcatStarter: out
Try  org.apache.tomcat.startup.Main
Starting org.apache.tomcat.startup.Main
No class found  
[Tue Jun 04 08:36:02 2002] [warn] vm.detach() ok
[Tue Jun 04 08:36:02 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb 
[Tue Jun 04 08:36:02 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Tue Jun 04 08:36:02 2002] [warn] mod_jk child init 1 -1
[Tue Jun 04 08:36:02 2002] [warn] vm.open2() done
[Tue Jun 04 08:36:02 2002] [warn] jni.validate() class= 
org/apache/jk/apr/TomcatStarter 
[Tue Jun 04 08:36:03 2002] [warn] vm.open2() done
[Tue Jun 04 08:36:03 2002] [warn] jni.validate() class= 
org/apache/jk/apr/TomcatStarter 
[Tue Jun 04 08:36:03 2002] [warn] vm.open2() done
[Tue Jun 04 08:36:03 2002] [warn] jni.validate() class= 
org/apache/jk/apr/TomcatStarter 
[Tue Jun 04 08:36:04 2002] [warn] Loaded org/apache/jk/apr/TomcatStarter
[Tue Jun 04 08:36:04 2002] [warn] jni.init() ARG start
[Tue Jun 04 08:36:04 2002] [warn] jni.init() calling main()...
TomcatStarter: main()
TomcatStarter: err
TomcatStarter: out
Try  org.apache.tomcat.startup.Main
Starting org.apache.tomcat.startup.Main
No class found  
[Tue Jun 04 08:36:04 2002] [warn] vm.detach() ok
[Tue Jun 04 08:36:04 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb 
[Tue Jun 04 08:36:04 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Tue Jun 04 08:36:04 2002] [warn] mod_jk child init 1 -1
[Tue Jun 04 08:36:04 2002] [warn] Loaded org/apache/jk/apr/TomcatStarter
[Tue Jun 04 08:36:04 2002] [warn] jni.init() ARG start
[Tue Jun 04 08:36:04 2002] [warn] jni.init() calling main()...
TomcatStarter: main()
TomcatStarter: err
TomcatStarter: out
Try  org.apache.tomcat.startup.Main
Starting org.apache.tomcat.startup.Main
No class found  
[Tue Jun 04 08:36:04 2002] [warn] vm.detach() ok
[Tue Jun 04 08:36:04 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb 
[Tue Jun 04 08:36:04 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Tue Jun 04 08:36:04 2002] [warn] mod_jk child init 1 -1
[Tue Jun 04 08:36:05 2002] [warn] Loaded org/apache/jk/apr/TomcatStarter
[Tue Jun 04 08:36:05 2002] [warn] jni.init() ARG start
[Tue Jun 04 08:36:05 2002] [warn] jni.init() calling main()...
TomcatStarter: main()
TomcatStarter: err
TomcatStarter: out
Try  org.apache.tomcat.startup.Main
Starting org.apache.tomcat.startup.Main
No class found  
[Tue Jun 04 08:36:05 2002] [warn] vm.detach() ok
[Tue Jun 04 08:36:05 2002] [warn] uriEnv.init() exact mapping 
/examples/servlet/HelloW=lb:lb 
[Tue Jun 04 08:36:05 2002] [warn] workerEnv.init() ok 
/etc/httpd2/conf/workers2.properties
[Tue Jun 04 08:36:05 2002] [warn] mod_jk child init 1 -1
2002-06-04 08:36:14 - SessionIdGenerator: Opening /dev/urandom
2002-06-04 08:36:14 - SessionIdGenerator: Opening /dev/urandom
2002-06-04 08:36:14 - SessionIdGenerator: Opening /dev/urandom
2002-06-04 08:36:16 - ServerXmlReader: Config=$TOMCAT_HOME/conf/server.xml
2002-06-04 08:36:16 - PathSetter: home=/var/tomcat3
2002-06-04 08:36:16 - ServerXmlReader: Config=$TOMCAT_HOME/conf/server.xml
2002-06-04 08:36:16 - PathSetter: home=/var/tomcat3
2002-06-04 08:36:16 - ServerXmlReader: Config=$TOMCAT_HOME/conf/server.xml
2002-06-04 08:36:16 - PathSetter: home=/var/tomcat3
2002-06-04 08:36:16 - ContextXmlReader: Context 
config=$TOMCAT_HOME/conf/apps-127.0.0.1.xml
2002-06-04 08:36:16 - ContextXmlReader: Context config=$TOMCAT_HOME/conf/apps-admin.xml
2002-06-04 08:36:17 - ContextXmlReader: Context 
config=$TOMCAT_HOME/conf/apps-127.0.0.1.xml
2002-06-04 08:36:17 - ContextXmlReader: Context config=$TOMCAT_HOME/conf/apps-admin.xml
2002-06-04 08:36:17 - ContextXmlReader: Context 
config=$TOMCAT_HOME/conf/apps-examples.xml
2002-06-04 08:36:17 - ContextXmlReader: Context 
config=$TOMCAT_HOME/conf/apps-examples.xml
2002-06-04 08:36:17 - ContextXmlReader: Context 
config=$TOMCAT_HOME/conf/apps-127.0.0.1.xml
2002-06-04 08:36:17 - ContextXmlReader: Context config=$TOMCAT_HOME/conf/apps-admin.xml
2002-06-04 08:36:17 - ContextXmlReader: Context 
config=$TOMCAT_HOME/conf/apps-examples.xml
2002-06-04 08:36:17 - AutoWebApp: Loaded from config: DEFAULT:/examples
2002-06-04 08:36:17 - AutoWebApp: Auto-Adding DEFAULT:/
2002-06-04 08:36:17 - AutoWebApp: Loaded from config: DEFAULT:/admin
2002-06-04 08:36:17 - ContextManager: Tomcat configured and in stable state 
2002-06-04 08:36:17 - AutoWebApp: Loaded from config: DEFAULT:/examples
2002-06-04 08:36:17 - AutoWebApp: Auto-Adding DEFAULT:/
2002-06-04 08:36:17 - AutoWebApp: Loaded from config: DEFAULT:/admin
2002-06-04 08:36:17 - ContextManager: Tomcat configured and in stable state 
2002-06-04 08:36:17 - ContextManager: Adding  DEFAULT:/admin
2002-06-04 08:36:17 - ContextManager: Adding  DEFAULT:/admin
2002-06-04 08:36:17 - AutoWebApp: Loaded from config: DEFAULT:/examples
2002-06-04 08:36:17 - AutoWebApp: Auto-Adding DEFAULT:/
2002-06-04 08:36:17 - AutoWebApp: Loaded from config: DEFAULT:/admin
2002-06-04 08:36:17 - ContextManager: Tomcat configured and in stable state 
2002-06-04 08:36:17 - ContextManager: Adding  DEFAULT:/admin
2002-06-04 08:36:19 - ContextManager: Adding  DEFAULT:/examples
2002-06-04 08:36:19 - ContextManager: Adding  DEFAULT:/ROOT
2002-06-04 08:36:19 - ContextManager: Adding  DEFAULT:/examples
2002-06-04 08:36:19 - ContextManager: Adding  DEFAULT:/ROOT
2002-06-04 08:36:19 - ContextManager: Adding  DEFAULT:/examples
2002-06-04 08:36:19 - ContextManager: Adding  DEFAULT:/ROOT
EmbededTomcat: Init time 18048
EmbededTomcat: Init time 17655
EmbededTomcat: Init time 18604
Guessed home=/var/tomcat3
Exception: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException: org.apache.tomcat.core.TomcatException: 
Root cause - Address already in use:8080
        at org.apache.tomcat.modules.server.PoolTcpConnector.engineStart(Unknown 
Source)
        at org.apache.tomcat.core.ContextManager.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute1(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat$1.run(Unknown Source)
        at org.apache.tomcat.util.compat.Jdk12Support$PrivilegedProxy.run(Unknown 
Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.tomcat.util.compat.Jdk12Support.doPrivileged(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.tomcat.util.IntrospectionUtils.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.main(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:69)
        at java.lang.Thread.run(Thread.java:512)
Root Exception: org.apache.tomcat.core.TomcatException: Root cause - Address already 
in use:8080
org.apache.tomcat.core.TomcatException: Root cause - Address already in use:8080
        at org.apache.tomcat.modules.server.PoolTcpConnector.engineStart(Unknown 
Source)
        at org.apache.tomcat.core.ContextManager.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute1(Unknown Source)
Guessed home=/var/tomcat3
Exception: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException: org.apache.tomcat.core.TomcatException: 
Root cause - Address already in use:8080
        at org.apache.tomcat.modules.server.PoolTcpConnector.engineStart(Unknown 
Source)
        at org.apache.tomcat.core.ContextManager.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute1(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat$1.run(Unknown Source)
        at org.apache.tomcat.util.compat.Jdk12Support$PrivilegedProxy.run(Unknown 
Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.tomcat.util.compat.Jdk12Support.doPrivileged(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.tomcat.util.IntrospectionUtils.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.main(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:69)
        at java.lang.Thread.run(Thread.java:512)
Root Exception: org.apache.tomcat.core.TomcatException: Root cause - Address already 
in use:8080
org.apache.tomcat.core.TomcatException: Root cause - Address already in use:8080
        at org.apache.tomcat.modules.server.PoolTcpConnector.engineStart(Unknown 
Source)
        at org.apache.tomcat.core.ContextManager.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.start(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute1(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat$1.run(Unknown Source)
        at org.apache.tomcat.util.compat.Jdk12Support$PrivilegedProxy.run(Unknown 
Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.tomcat.util.compat.Jdk12Support.doPrivileged(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.tomcat.util.IntrospectionUtils.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.main(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:69)
        at java.lang.Thread.run(Thread.java:512)
TomcatStarter: Done
        at org.apache.tomcat.startup.EmbededTomcat$1.run(Unknown Source)
        at org.apache.tomcat.util.compat.Jdk12Support$PrivilegedProxy.run(Unknown 
Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.tomcat.util.compat.Jdk12Support.doPrivileged(Unknown Source)
        at org.apache.tomcat.startup.EmbededTomcat.execute(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.tomcat.util.IntrospectionUtils.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.execute(Unknown Source)
        at org.apache.tomcat.startup.Main.main(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:69)
        at java.lang.Thread.run(Thread.java:512)
TomcatStarter: Done
2002-06-04 08:36:24 - Http10Interceptor: Starting on 8080
2002-06-04 08:36:24 - Ajp12Interceptor: Starting on 8007
2002-06-04 08:36:24 - Ajp13Interceptor: Starting on 8009
EmbededTomcat: Startup time 438
TomcatStarter: Done
2002-06-04 08:36:24 - CoyoteInterceptor: Starting on 8081
2002-06-04 08:36:24 - Ajp12Interceptor: Using stop file: /var/spool/tomcat3/ajp12.id
2002-06-04 08:36:24 - Ajp13Interceptor: Using stop file: /var/spool/tomcat3/ajp13.id

5) What about using tomcat.user and tomcat.group properties and use setUser() in
   TomcatStarter run method ?

    public void run() {
        System.err.println("Starting " + c.getName());
        try {
                        
                        String tuser = System.getProperty("tomcat.user");
                        String tgroup = System.getProperty("tomcat.group");

                        if (tuser != null && tgroup != null)
                                AprImpl.setUser(tuser, tgroup);

                ....

Of course will have to change public native int setUser( String user, String group )
to public static native int setUser( String user, String group ).

We have to change JVM user/group in the early stage of init since we want
to be sure that logs, pid and others R/W files will be available to the
running process. 

But it may raise others problems with httpd2 child which
could need to be apache2 user to acces others httpd2 files ?

So we could just let JVM running tomcat as apache2 user but
will have to fix the shm access rigth first.

Costin, what do you think about ?



-
Henri Gomez                 ___[_]____
EMAIL : [EMAIL PROTECTED]        (. .)                     
PGP KEY : 697ECEDD    ...oOOo..(_)..oOOo...
PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to