一、假设lib目录下有如下几个包
httpcore-4.0.1.jar
httpcore-4.3.2.jar
httpcore-nio-4.0.1.jar
httpcore-4.4.5.jar
二、类加载的几种情况
在同一类加载器内,按照先后顺序加载,以第一个找到的类作为被加载类
情况1:
类只在httpcore-4.4.5中有,加载无影响,只有httpcore-4.4.5.jar包中才能找到。
例如:
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.ssl.TrustStrategy;
情况2:
类在httpcore-4.3.2和httpcore-4.4.5中都有,但是4.4.5版本有新的构造方法,程序引用了新的构造方法,那么如果先加载了httpcore-4.3.2中的类,程序会有红叉叉出现。
情况3:
类在httpcore-4.3.2和httpcore-4.4.5中都有,构造方法一致,但是httpcore-4.4.5中有新的逻辑处理,那么如果先加载了httpcore-4.3.2中的类,程序运行时会报错。
三、不同容器加载包的方式
weblogic中同名不同版本的包是如何加载的?
httpcore-4.0.1.jar
httpcore-4.3.2.jar
httpcore-nio-4.0.1.jar
httpcore-4.4.5.jar
二、类加载的几种情况
在同一类加载器内,按照先后顺序加载,以第一个找到的类作为被加载类
情况1:
类只在httpcore-4.4.5中有,加载无影响,只有httpcore-4.4.5.jar包中才能找到。
例如:
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.ssl.TrustStrategy;
情况2:
类在httpcore-4.3.2和httpcore-4.4.5中都有,但是4.4.5版本有新的构造方法,程序引用了新的构造方法,那么如果先加载了httpcore-4.3.2中的类,程序会有红叉叉出现。
情况3:
类在httpcore-4.3.2和httpcore-4.4.5中都有,构造方法一致,但是httpcore-4.4.5中有新的逻辑处理,那么如果先加载了httpcore-4.3.2中的类,程序运行时会报错。
三、不同容器加载包的方式
weblogic中同名不同版本的包是如何加载的?
按顺序加载,先找到的作为被加载类,有不确定性,每次重启加载到的包会不同?比如第一次启动加载到httpcore-4.3.2中的类,第二次启动加载到httpcore-4.4.5中的类