0

ファイル システムからオラクル コマース コンポーネントをロードできるかどうかを調べています。通常、すべてのコードを ear ファイルにアセンブルしてデプロイしますが、一部のコンポーネントを ear ファイルと一緒にパッケージ化するのではなく、ファイル システムに格納する必要があるという要件がありました。

以下に示すように、URLClassloader を使用してクラスをロードできることはわかっています。

File classDir = new File("A:\\LodeeModule\\classes");
URL[] url = { classDir.toURI().toURL() };
ClassLoader loader = new URLClassLoader(url);
for (File file : classDir.listFiles()) {
   String filename = file.getName().replace(".class", "");
   loader.loadClass("com.buddha.testers." + filename).getConstructor().newInstance();
}

しかし、後で Nucleus によって解決される必要があるコンポーネントに同じものを使用するにはどうすればよいでしょうか? ファイル システムからコンポーネントを解決するよう Nucleus に指示する方法はありますか?

4

2 に答える 2

0

atg.dynamo.data-dir プロパティを探していると思います。そのプロパティを指定すると、dynamo はその場所で「サーバー構成」またはプロパティ ファイルを探します。これにより、configs を ear ファイルから分離できます。

注: 設定を ear に含めることはできますが、設定が優先されると思います。

通常、サーバーの起動時に次のように指定されます。

run.sh -c <your server> -Datg.dynamo.data-dir=/data/something/serverconfigs

この機能はほとんど文書化されていませんが、多くの人が知っています。http://docs.oracle.com/cd/E24152_01/Platform.10-1/ATGPlatformProgGuide/html/s0302developmentmodeandstandalonemode01.htmlを参照してください。

編集:あなたが最初に求めていたものを間違えました。ATG が提供する使い捨てクラス ローダーを確認したい場合がありますが、これは開発のみを目的としていることに注意してください。

于 2014-06-26T16:29:15.280 に答える