javaEE环境下ClassLoader.getSystemClassLoader加载类异常
ClassLoader.getSystemClassLoader方法无论何时均会返回ApplicationClassLoader,其只加载classpath下的class文件。
在javaSE环境下,一般javaSE项目的classpath为bin/目录,因此只要编译后的class文件在classpath下就可以。此时ApplicationClassLoader就可以加载动态生成的类。
但在javaEE环境下,我们的项目里的类是通过WebAppClassLoader类来加载的,此时我们获取了ApplicationClassLoader,因此自然找不到class文件。
因此我们可以使用Thread.currentThread().getContextClassLoader()来获取WebAppClassLoader来加载,就不会报错了。