We are using Tomcat 5.5.17 and are using a custom ClassLoader, which we specify using the Loader element per the documentation at http://tomcat.apache.org/tomcat-5.5-doc/config/loader.html.
We place the jar containing our custom ClassLoader in the tomcat\server\lib folder, per the documentation at http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html. (I forget why we did this originally, but I think we had problems if we put it elsewhere.) According to this documentation, classes in this jar should be TOTALLY invisible to web applications. And indeed, for the most part, if we try to reference some class in this jar, we get a java.lang.NoClassDefFoundError. What is strange, however, is that sometimes the web-app does seem to find classes in this jar. Even more strange, it does not seem to be deterministic. The app will work for a few days, and then it won't. So I understand why it does not work (class should not be visible), but why does it ever work? Does anyone have any thoughts on what might be going on?