X.ear里包括了A.war, B.jar, C.jar。A.war 用到B.jar,并且在其manifest的classpath里指定了B.jar。B.jar动态加载C.jar 里的D.class发生NoClassDefFoundException。
原因是在有些Application Server里,ear不加载其包含的jar,所以B.jar找不到D.class。
解决方法是在B.jar的manifest里把C.jar加进classpath。在Windows下大小写不敏感,在Linux下是敏感的。
转载于:https://blog.51cto.com/carpediem/289471