There is no way in hell JNI can ever work with JK2. jk_channel_jni.c::jk2_channel_jni_open invokes the java static method createJavaContext() which in turns tries to return a registered JkHandler for Jni (ChannelJni) from the underlying hashtable. However when the in-process mode is enabled, there is nobody registering any handlers! As a result null is trurned into c land from Java when createJavaContext returns causing the JNI invocation to fail.
Tried this with Apache 2.0.43/44. With the out of process mode the declaration in server.xml cause a JkCoyoteHandler to be registered but with the in-process mode, this was suppose to happen automatically. Nobody seems to trigger a call to AprImpl.addJkHandler() - not in java land not in c land! This convince me that JNI mode never really worked with JK2. If you look at the tomcat-user archive you can see people falling on their faces trying to get this to work,but nobody has succedded now I know why. Someone should fix the Jk2 web site which lures naive users to believe that JNI mode is working with Jk2! I did try to fix the problem by tring to instantiate a ChannelJni instance in the ctor of AprImpl and register it into the jkHandlers table but was getting NPE...don't know the code that well to know what assumptions are built into ChannelJni. Will continue to debug. _________________________________ Rahul Bhargava