Weblogic 11 G:更改默认类加载

时间:2012-12-03 10:51:13

标签: classloader weblogic11g

我有一个关于Weblogic服务器11 G类加载基础架构的查询。

假设我在服务器启动时在类路径中加载了两个名为 A.jar B.jar 的应用程序罐。

默认情况下,两个jar都包含类 LoadMe.class ,并且从jar A.jar 加载 LoadMe.class

现在我想更改上面的默认行为,并希望从 B.jar 而不是 A.jar 加载该类。

我该怎么做?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

每当第一次使用LoadMe类时,ClassLoader将尝试使用CLASSPATH解析依赖关系。

现在,如果你必须从B.jar加载该类,那么你必须首先在CLASSPATH中显式地放置该jar的路径和A.jar。因此ClassLoader将首先从B.jar中选择类。

Try this link for more on ClassLoaders

阅读此内容并更改类路径,问题应该解决

Setting classpath in WebLogic 11G

更新

System.out.println("Classpath dependency for LoadClass: ");
URLClassLoader classLoader = (URLClassLoader)LoadMe.class.getClassLoader();
System.out.println(Arrays.toString(classLoader.getURLs()));

System.out.println("Classpath dependency for Context: ");
URLClassLoader classLoader1 = (URLClassLoader)Thread.currentThread().getContextClassLoader());
System.out.println(Arrays.toString(classLoader.getURLs()));