Greetings everyone.

I've exhaustively searched the archives for a success story I can build on, but in 
vain.

I've been beating my head against mod_jk2 for over 2 days now, and I keep getting SO 
close but not quite far enough.  If you've had similar experiences but got beyond it - 
please read on!

The Bad news is:

  - The jakarta-tomcat-connectors-jk2-2.0.2-src comes with little to no documentation. 
 All references to "reading the docs in the tarball" are false.
  - The few README's that exist within the build dirs tell of the minumum 
configuration necessary, but no real direction as to how to make it all work.
  - Reading the incomplete documentation on the web site shed some light on the 
problem, but still isn't getting me there.
  - Nowhere does the documentation mention the CLASSPATH issue that comes up.. I 
couldn't get anything to work until I added ALL of the tomcat common and server/lib 
jar files to the CLASSPATH in the worker2.properties file and added a JAVA_HOME 
environment variable to Apache2/bin/envvars
  - Nowhere does the documentation mention that the Java VM (jvmdll.so) must be in the 
LD_LIBRARY_PATH, or otherwise available via ld.so.conf / ldconfig
  - The build scripts for ant "build.xml" refer to a "coyote" directory, which doesn't 
exist in the jakarta-tomcat-connectors-jk2-2.0.2-src tarball.
  - The "configure" script that was created for some reason fails when testing that a 
directory isn't a regular file under RH 8.0... Go figure... I had to hand-edit out all 
the "if $(TEST) ! -f" blocks.
  - The docs are inconsistent as to where one should place the "jkjni.so" file.  If 
placed in apache lib (which is also in my ld.so.conf) - things seem ok.. If places in 
tomcat/server/lib, things go poorly.
  - The docs never clearly define where, when, and how the "shm" block should be 
created, only that it's allowed... I only found it to be required through the use of 
google searching the archives.

There is some good news:

  - After hours of hacking at the build process, I finally got a valid mod_jk2.so and 
jkjni.so file
  - Tomcat 4.1 had a tomcat-jk2.jar file, so the coyote compile was ultimately 
unnecessary - just annoying as the build process required it.
  - Tomcat 4.1 launches inside of Apache 2 (as evidenced by the apache error_log file)

The worse news: 
  - No channels or workers will initialize, no matter WHAT I do.  I've followed the 
docs to the letter and have both jk2.properties and workers2.properties in their 
proper locations 

So, with that said.. I'm hoping that where the docs fail, the community will prevail.


Questions:

1) What is the proper format of the "JkUriSet" command in the httpd.conf file?  This 
is the only example I've found:

        <Location /examples>
            JkUriSet worker worker
        </Location>

   If I use this <Location> in my httpd.conf, I get the error: 

[Thu Apr 03 21:02:29 2003] [error] uriEnv.init() map to invalid worker /examples worker

So I expected that it wanted the name of the worker (jni I assume, considering the 
lack of documentation I am FORCED to assume! help!) so I made the block look like this:


        <Location /examples>
            JkUriSet worker jni
        </Location>
        
   It still complains.. I'm stumped on that one, so I thought -- just remove it and 
let the default [uri:/examples/*] handlers manage it (from workers2.properties) -- but 
when I try it without the block, I receive these different errors:

[Thu Apr 03 20:58:22 2003] [error] lb_worker.service() all workers in error or 
disabled state
[Thu Apr 03 20:58:22 2003] [error] mod_jk.handler() Error connecting to tomcat 120000


2) What must be done to init the jni channels and workers?  What is the proper file 
format? I've seen many (MANY) references to mod_jk2 on the internet discuss using a 
"workers.properties" file, which looks extremely like the old 3.x version... I can't 
bring myself to believe that those are right (especially since if I add any of those 
commands to workers2.properties, it bombs out...)  Using the examples in the docs, 
FAQ's, how to's and readmes results in this error log:

----- snip -----

[Thu Apr 03 20:28:09 2003] [notice] Apache configured -- resuming normal operations
[Thu Apr 03 20:28:12 2003] [error] workerEnv.initChannel() init failed for 
channel.jni:jni
[Thu Apr 03 20:28:12 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onStartup
[Thu Apr 03 20:28:12 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onShutdown
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initChannel() init failed for 
channel.jni:jni
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onStartup
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onShutdown
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initChannel() init failed for 
channel.jni:jni
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onStartup
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onShutdown
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initChannel() init failed for 
channel.jni:jni
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onStartup
[Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for 
worker.jni:onShutdown
TomcatStarter: main()
Try  org.apache.tomcat.startup.Main
Try  org.apache.catalina.startup.BootstrapService
Starting org.apache.catalina.startup.BootstrapService
Created catalinaLoader in: /usr/local/jakarta/tomcat/server/lib
[Thu Apr 03 20:28:16 2003] [error] mod_jk child init 1 0
Apr 3, 2003 8:28:17 PM org.apache.commons.modeler.Registry loadRegistry
INFO: Loading registry information
Apr 3, 2003 8:28:17 PM org.apache.commons.modeler.Registry getRegistry
INFO: Creating new Registry instance
Apr 3, 2003 8:28:19 PM org.apache.commons.modeler.Registry getServer
INFO: Creating MBeanServer

----- snip -----

As you can see, Tomcat IS launching.. The VM is coming up and the bootstrap is 
initialized... It's the channel.* and worker.* directives that are now failing..


This line causes my curiosity to peak as well, can anyone decrypt it:

[Thu Apr 03 20:28:16 2003] [error] mod_jk child init 1 0



Can ANYONE help? 

Puh-lease?

Ken M
[EMAIL PROTECTED]



-------------- Big Snip ----------------

########################################
######## jk2.properties ################
########################################
# list of needed handlers.
handler.list=apr,request,container,channelJni

# Or you can use the mod_jk2 directly
#apr.jniModeSo=/usr/local/apache/modules/mod_jk2.so

channelJni.disable = 0
# If you wish to start the Tomcat from inside web server then
# you don't need any above directive. Here is shown the default
# value for the apr that you can ommit
apr.jniModeSo=inprocess


-------------- Big Snip ----------------

########################################
####### workers2.properties ############
########################################
# Define the comunication channel 
[channel.jni:jni]
#info=The jni channel, used if tomcat is started inprocess

# Define the parameters for the Java Virtual Machine
[vm:]
info=Parameters used to load a JVM in the server process
OPT=-Djava.class.path=$CLASSPATH:/usr/local/jakarta/tomcat/server/lib/tomcat-jk2.jar:/usr/local/jakarta/tomcat/bin/boots
trap.jar:/usr/local/jakarta/tomcat/server/lib/catalina.jar:${TOMCAT_HOME}/server/lib/commons-digester.jar:/usr/local/jak
arta/tomcat/common/lib/ant.jar:/usr/local/jakarta/tomcat/common/lib/commons-collections.jar:/usr/local/jakarta/tomcat/co
mmon/lib/commons-logging-api.jar:/usr/local/jakarta/tomcat/common/lib/jasper-compiler.jar:/usr/local/jakarta/tomcat/comm
on/lib/jasper-runtime.jar:/usr/local/jakarta/tomcat/common/lib/naming-common.jar:/usr/local/jakarta/tomcat/common/lib/na
ming-factory.jar:/usr/local/jakarta/tomcat/common/lib/naming-resources.jar:/usr/local/jakarta/tomcat/common/lib/servlet.
jar:/usr/local/jakarta/tomcat/server/lib/commons-beanutils.jar:/usr/local/jakarta/tomcat/server/lib/commons-digester.jar
:.:/usr/local/jakarta/tomcat/server/lib/commons-modeler.jar:/usr/local/jakarta/tomcat/server/lib/jakarta-regexp-1.2.jar:
/usr/local/jakarta/tomcat/server/lib/mx4j-jmx.jar:/usr/local/jakarta/tomcat/server/lib/servlets-common.jar:/usr/local/ja
karta/tomcat/server/lib/servlets-default.jar:/usr/local/jakarta/tomcat/server/lib/servlets-invoker.jar:/usr/local/jakart
a/tomcat/server/lib/servlets-manager.jar:/usr/local/jakarta/tomcat/server/lib/servlets-webdav.jar:/usr/local/jakarta/tom
cat/server/lib/tomcat-util.jar:/usr/local/jakarta/tomcat/server/lib/tomcat-warp.jar
OPT=-Dtomcat.home=/usr/local/jakarta/tomcat
OPT=-Dcatalina.home=/usr/local/jakarta/tomcat
OPT=-Xmx128M

# JNI worker startup handler
[worker.jni:onStartup]
info=Command to be executed by the VM on startup. This one will start tomcat.
class=org/apache/jk/apr/TomcatStarter
ARG=start
stdout=${serverRoot}/logs/stdout.log
stderr=${serverRoot}/logs/stderr.log

# JNI worker shutdown handler
[worker.jni:onShutdown]
info=Command to be executed by the VM on shutdown. This one will stop tomcat.
class=org/apache/jk/apr/TomcatStarter
ARG=stop

[uri:/*.jsp]
info=Map the whole webapp

[uri:/examples/*]
info=Map the whole webapp

[shm:]
info=SHM Block
file=/var/log/httpd/jk2.shm
size=1048576

Reply via email to