加载顺序

Weblogic10 Classloading 问题

霸气de小男生 提交于 2019-12-02 20:29:36
首先要说说Weblogic的classloading的机制(不同的Applicaiton Server,classloading的方式各有不同)。简而言之,weblogic默认情况下采用的是 parent first 的方式。但这个parent first,是有“讲究”(tricky)的。 1。父类加载器和子类加载器之间的关系类似于Java中,父类和子类之间的对象关系。 2。Weblogic 会将所有load到的class缓存 到cache中。(子类classloader能看到父类classloader加载到cache中的class) 默认情况下,当我们的应用程序(ear,war)运行时,会先去cache中查找class,如果找不到。就去System Classpath loader 里去找class。如果System Classpath loader里能找到你需要的类,那么不好意思,你在ear和war包里包含的class就没用了。 如果System ClassPath Loader找不到,接下来去ear的class path里找,接着去EJB class path里找,最后到war的class path里找。一旦找到了该类,就会load起这个类,并将该类放入cache中。 上面的描述,没什么奇怪,但需要注意的是下面的情况。当应用程序执行时