My servlet cannot find classes that implement extension functions or elements. What can I do?
If you install xalan.jar in the servlet engine’s lib directory (e.g., tomcat/lib), as opposed to the servlet’s lib directory, then the Xalan-Java classes are loaded by a classloader that does not see the classes in the servlet’s classloader (i.e., the extension classes, if you placed them there). The Xalan-Java classes try to load the extension classes using their own classloader, and that attempt fails. Workaround: place xalan.jar in the servlet’s lib directory and NOT in the servlet engine’s lib directory. Another workaround is to place the extension classes also in the servlet engine’s lib directory, but you generally want to avoid cluttering that directory. Thanks to Gunnlauger Thor Briem (gthb@dimon.is) for providing this information.