- PR -

Tomcat5.x クラスローダーについて

投稿者投稿内容
hiro
常連さん
会議室デビュー日: 2005/03/10
投稿数: 32
投稿日時: 2005-05-11 10:59
ロジックがないので推測ですが
まず、
引用:

クラスローダを走らせた所、読込む事はできませんでした。


は、
クラスローダでパッケージ(ディレクトリ)を指定する場合、区切り文字は"."でなく"/"です。
確認してみてください。

引用:

これはLog4jでも同じでした。


Log4jは何も指定しないとデフォルトパッケージ(classes直下)にLog4j.properties(またはLog4j.xml)を探しにいきます。
場所を変えたい場合、システムプロパティ(log4j.configuration)に値を設定する必要があります。
値はURL形式で指定してください。ロジックで設定するには
コード:
        Properties properties =  System.getProperties();
        ClassLoader loader = this.getClass().getClassLoader();
        URL url = loader.getResource("properties/elog4j.properties");
        properties.setProperty("log4j.configuration",url.toString());


とします。
これをアプリケーション起動時、一番最初に実行します。
またTOMCATの場合環境変数で指定する方法もあるそうなので調べてみてください(この場合TOMCATのLOGもこちらに吐いてしまうかも)

最後に
引用:

WEB-INF/classesにプロパティファイルを置くとたまに自動的に削除されてしまいますよね?どうしてなんですかね?


Eclipseがソースを保存するときclasses配下のファイルを全て削除してコンパイル結果を再配置することがあり、そのとき
プロパティファイルも消えてしまいますのでsrc配下にプロパティファイルを置いておくことを薦めます。
(この場合プロパティファイルの設定変更が反映されない場合があるので、プロパティファイルの内容を変えたら
ソースを保存してコンパイルをEclipseに促してあげてください。同時にプロパティファイルがclassesにコピーされるはずです)
ysnumber
会議室デビュー日: 2005/01/26
投稿数: 17
投稿日時: 2005-05-11 12:51
hiroさん 何度もありがとうございます。
本当に助かります。

一つ一つ試してみます。

本当にありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)