[Seasar-user:18500] 【S2Config】環境設定に依存した設定情報の読み込みがうまくいかない
黒瀬健二
[E-MAIL ADDRESS DELETED]
2009年 9月 17日 (木) 13:40:18 JST
お世話になっております。黒瀬と申します。
S2Configを利用させて頂いています。
環境依存に対応した設定情報を扱いたかったので、マニュアルを
参照して動作確認を行ったのですが、うまく動作しない場合が
ありました。
コンフィグコンテナのみの利用で動作させると問題ないのですが
コンフィグクラスを定義すると、当該クラスのコンポーネント定義
から処理が返ってこなくなってしまいました。
関連ファイルの記述を下記に記します。
(S2Configの設定自体はマニュアル通りに行っております。)
■設定ファイル1:app.properties
env=test
sample1=hoge1
sample2=hoge2
■設定ファイル2:app_test.properties
sample1=hoge11111
sample2=hoge22222
■コンフィグクラス:AppConfigクラスの定義
@Config(name = "app")
public class AppConfig {
@ConfigKey(name = "sample1", readOnly = true)
public String sample1;
@ConfigKey(name = "sample2", readOnly = true)
public String sample2;
}
■メインプログラム
public static void main(String[] args) {
SingletonS2ContainerFactory.init();
ConfigContainer config = SingletonS2Container
.getComponent(ConfigContainer.class);
System.out.println(config.getConfigValue(String.class, "sample1"));
}
■上記メインプログラムを実行した場合のログ
2009-09-17 12:43:54,125 [main] DEBUG org.seasar.framework.env.Env -
環境変数#Envにファイル(env.txt)から値(ct)が設定されました
<<<<<<<< 途中省略 >>>>>>>>
2009-09-17 12:43:54,781 [main] DEBUG
org.seasar.framework.container.util.S2ContainerUtil -
クラス(org.s2.config.test.config.AppConfig[appConfig])のコンポーネント定義を登録します
(ここから処理が返ってこなくなる)
※ちなみに、AppConfigクラスの定義をプロジェクトから削除してプログラムを
実行すると、test環境の設定が適用され正常に「hoge11111」が表示されます。
実行環境については以下の通りです。
JDK: 1.6.0_14
S2: 2.4.38 (Smart Deploy)
S2Config: 1.0.1
ご確認して頂けると幸いです。
Seasar-user メーリングリストの案内