[Seasar-user:4109] Re: データソース設定をwarの外のプロパティファイルから読み込むには

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2006年 7月 18日 (火) 16:00:20 JST


小林 (koichik) です.

Date:    Tue, 18 Jul 2006 15:03:20 +0900
From:    Junichi Kato <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:4108] データソース設定をwarの外のプロパティファイルから読み込むには

> 実現方法として考えたのは、このプロパティファイルを読み込むことができる
> クラスをj2ee.dicon上に登録して利用することです。
> しかし、以下のgetBundle時にMissingResourceExceptionが発生してしまいます。
(略)
> org.seasar.framework.exception.InvocationTargetRuntimeException: 
> [ESSR0043]config.ApplicationConfigManagerが呼び出した対象が不正です。
> 理由はjava.util.MissingResourceException: Can't find bundle for base 
> name userConfig, locale ja_JP

これを見る限り,config.ApplicationConfigManager クラスが
userConfig.properties を見つけることができていないように
見えます.

もし java.util.ResourceBundle を使用しているなら,それは
クラスローダからリソースを見つけようとするのですが,
クラスローダを明示的に指定しない場合は呼び出し側の
クラスローダが使われることになります.

そのため,${catalina_home}/conf/ が Web アプリケーションの
クラスローダから参照できる (クラスパスに含まれている) ように
なっていない限り,その下にあるファイルを見つけることは
できませんが,おそらくそうなっていないのだと思います.

Tomcat で,Web アプリケーションのクラスローダがリソースを
参照できる場所としては,以下があります.

${catalina_home}/share/classes
${catalina_home}/common/classes

userConfig.properties を上のどちらか (share の方が適切だと
思われます) に配置してみてはいかがでしょうか?


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内