Btw, the following might actually be enough to make things work, though I'm not entirely sure:

public Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
ClassLoader old = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(this);
return super.loadClass(name, resolve);
} finally {
Thread.currentThread().setContextClassLoader(old);
}
}