Hi, i'm using Tomcat 7.0.70 on ubuntu 15.10.
I have created a SampleClassLoader : package com.axway.tnt.compliance; import org.apache.catalina.loader.WebappClassLoader; import java.io.File; import java.io.IOException; public class SampleClassLoader extends WebappClassLoader { public SampleClassLoader() { super(); } public SampleClassLoader(final ClassLoader parent) { super(parent); } @Override protected boolean validateJarFile(final File file) throws IOException { System.out.println("-----------Load: " + file.getName()); return super.validateJarFile(file); } } I have put it in a jar in ../apache-tomcat/lib I have a webapp : apache-tomcat/lwebapps/sample I have modified apache-tomcat/lwebapps/sample/meta-inf/context.xml to use this classloader : <Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Fix Tomcat startup issue due to noteable change. In 7.0.51 onwards, the web application class loader is now a higher priority for loading classes than the system class loader. With this attribute set to true, the class loader follow the standard Java2 delegation model, and attempt to load classes from parent class loaders before looking inside the web application. --> <Loader delegate="true" loaderClass="com.axway.tnt.compliance.SampleClassLoader"/> </Context> And it's working fine. But i don't want to modify my tomcat, i want to put my classloader in my webapp/lib and in this case i have : java.lang.ClassNotFoundException: com.axway.tnt.compliance.SampleClassLoader at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.catalina.loader.WebappLoader.createClassLoader(WebappLoader.java:723) at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:582) Caused by: org.apache.catalina.LifecycleException: Failed to start component [WebappLoader[/sample]] at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:632) Caused by: java.lang.ClassNotFoundException: com.axway.tnt.compliance.SampleClassLoader at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.catalina.loader.WebappLoader.createClassLoader(WebappLoader.java:723) at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:582) Any idea to do that ? Thanks for your time and answers.