我并没有在weblogic的classpath中加载web appliaction的jar,所以后台并没有加载web appliaction的jar的信息。所以我不知道到底哪个才是我最终加载的jar
实践中我发现web appliaction 用的是weblogic classpath中加载的jar。
我想证实一下,是否weblogic 的加载顺序就是weblogic classpath优先?
这个顺序可否改变?指定某个web appliaction对jar加载的顺序?

解决方案 »

  1.   

    配置文件应该有,我手头上没有weblogic,而且对其不是很熟,请熟悉的帮忙,关注一下。
      

  2.   

    类是通过类加载器classloader载入的。
    缺省情况下web容器遵循java的标准标准类载入机制 -- 由现载入父加载器level的类。
    weblogic的web容器的classloader继承自ejb容器的classloader,ejb容器的classloader又继承自application classloader--该loader负责加载classpath下面的类,所以缺省情况下classpath下面的类会被优先载入,即使相同的类存在于web应用的lib目录。
    可以通过配置文件来修改这种加载顺序,使得lib目录中的类得到优先调用,在weblogic 8.1中,方法是在weblogic.xml中加入下面的代码段:
    <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>