这已通过保持引用已实例化 MBean 的 ClassLoader 来解决:
/** the classLoader to use for future usages */
protected final ClassLoader instanciatingClassLoader;
/** Default constructor */
public MyMonitoringBean() {
// Keep in reference the classLoader used to instanciate this object
this.instanciatingClassLoader = Thread.currentThread().getContextClassLoader();
}
protected ClassLoader getClassLoader() {
return instanciatingClassLoader;
}
它没有解决这个问题,因为对这个 MBean 的调用是在一个线程中执行的,其中 ClassLoader 不是 WebApp ClassLoader,而是对类加载器的特定调用,例如:
getClassLoader().loadClass(className)
可以直接使用webApp类加载器来解决