Well, what can I say.  In the end, it was a trivial fix.  In
Tomcat's server.xml, I added:

        <RequestInterceptor 
            className="org.apache.tomcat.request.Jdk12Interceptor" 
            debug="0" />

        This was after the last existing RequestInterceptor entry.  That
sets the correct ClassLoader for every request.  With that, I have the
following configuration:

     tomcat/bin:  nothing
     tomcat/lib:  nothing
 tomcat/classes:  nothing
WEB-INF/classes:  jndi.properties, bean remote + home interfaces
    WEB-INF/lib:  jboss-client.jar, jnp-client.jar, jta-spec1_0_1.jar,
                  ejb.jar

        I think this will be the preferred configuration, though you might
argue in favor of putting the libraries in tomcat/lib instead of
WEB-INF/lib if you think all the web apps can safely use jBoss.
        Note that this specifically resolves all the ClassLoader problems
I had before, plus the bizarre locations people have had to use for
jndi.properties.  God bless good architecture, for letting this all come
down to a one-line configuration change.  Now, shall I update the
jBoss+Tomcat web page, or does someone else want to?

Enjoying JSPs,
                Aaron


Reply via email to