0

Weblogic サーバー 11 G クラスのロード インフラストラクチャに関する質問が 1 つあります。

サーバーの起動時にA.jarB.jarという名前の 2 つのアプリケーション jarがクラスパスにロードされているとします。

どちらの jar にも LoadMe.class というクラスが含まれており、サーバーはデフォルトで jar A.jar からLoadMe.classロードします。

ここで、上記のデフォルトの動作を変更し、そのクラスをA.jarではなくB.jarからロードしたいと考えています。

どうやってやるの?

どんな助けでも大歓迎です。

4

1 に答える 1

0

LoadMeクラスを初めて使用するときはいつでも、ClassLoader は CLASSPATH を使用して依存関係を解決しようとします。

B.jar からクラスをロードする必要がある場合は、CLASSPATH でその jar へのパスを最初に、A.jar を 2 番目に明示的に配置する必要があります。そのため、ClassLoader は最初に B.jar からクラスを選択します。

クラスローダーの詳細については、このリンクを試してください

これを読んでクラスパスを変更すると、問題は解決するはずです

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()));
于 2012-12-03T13:11:19.190 に答える