[Seasar-user:20842] Re: s2configで環境による設定の切り替えがうまくできない

Naoki Takezoe [E-MAIL ADDRESS DELETED]
2011年 7月 7日 (木) 08:42:00 JST


竹添です。

Seasar2徹底入門を執筆させていただいた者です。
反応が遅れてしまい申し訳ありません。

設定値の上書きについては書籍のミスです。
出版社さん提供の正誤表に記載させていただくと共に、
次の増刷の際に修正させていただきます。

正誤表のURLは以下になります。
本件も近日中に掲載されるかと思います。
http://www.seshop.com/book/errata/12039/list

ご迷惑をおかけして申し訳ありませんでした。

2011年6月27日22:45 Yasuo Tabira <[E-MAIL ADDRESS DELETED]>:
> いわまさん
>
> たびらです。お返事ありがとうございます。
> 取得できるようになりました!
>
> ついでにdiconファイルにも同じように
> configContainer.getConfigStringを使用していて切り替えがうまくいってなかったのですがそれもうまく行きました。
> #Seasar2徹底入門のサンプルはgetConfigStringとなっていたのですが。。。
>
> どうもありがとうございました。
>
> 2011年6月27日月曜日 Ryo Iwama [E-MAIL ADDRESS DELETED]:
>> 田平さん
>>
>> いわまです、遅くなってしまって申し訳ありません。
>> ぼくがド忘れしていただけで、対応方法はかなり単純でしたOTZ
>>
>> envで上書きしたときに、上書きされた値を取得したい場合は
>> getConfigValueではなくfindAllConfigValueを利用する必要があります。
>>
>> コンフィグクラスを下記のように修正すると上手く行くと思います。
>>
>> == コンフィグクラス
>>
>> public class HogeConfig {
>>
>>   @Resource
>>   private ConfigContainer configContainer;
>>
>>   /**
>>    * fooの値。
>>    *
>>    * @return fooの値
>>    */
>>   public String getBarServiceAreacdFoo() {
>>       String val = configContainer.findAllConfigValue(String.class,
>> "barService.areacd.foo");
>>       if (val == null) {
>>           throw new InvalidPropertyRuntimeException(
>>               "設定ファイル hoge.properties : barService.areacd.foo の読み込みに失
>> 敗");
>>
>>       }
>>       return val;
>>   }
>> }
>>
>> 2011年6月24日8:10 田平康雄 <[E-MAIL ADDRESS DELETED]>:
>>> 了解です。
>>> よろしくお願い致します。
>>>
>>> --
>>> 田平康雄
>>>
>>> On 2011/06/21, at 13:26, Ryo Iwama <[E-MAIL ADDRESS DELETED]> wrote:
>>>
>>>> こんにちは
>>>>
>>>> 岩間(happy_ryo)です。
>>>>
>>>> 反応が遅くて申し訳無いです。
>>>> 繁忙期故、確認する時間が取れないで居ます
>>>> 週末には確認できると思うのですが
>>>> それまでお待ちいただけますでしょうか?
>>>>
>>>> 2011年6月17日18:58 Yasuo Tabira <[E-MAIL ADDRESS DELETED]>:
>>>>> 田平と申します。
>>>>>
>>>>> S2Configを使用して環境によって設定を切り替えようとしていますが、うまく行きません。
>>>>> Seasar2徹底入門の通りやっているつもりなのですが、切り替え用の設定ファイルの値が反映されないです。
>>>>>
>>>>> 設定ファイルを以下のように作成し、env=utを記述しています。
>>>>> これでhoge_ut.propertiesの値(99999)が参照されるのを期待しているのですが27720が返ってきます。
>>>>>
>>>>> == hoge.properties
>>>>> env=ut
>>>>> barService.areacd.foo=27720
>>>>>
>>>>> == hoge_ut.properties
>>>>> barService.areacd.foo=99999
>>>>>
>>>>> どなたか原因がわかる方がいらっしゃいましたらご教授願えませんでしょうか。
>>>>> よろしくお願いいたします。
>>>>>
>>>>> ■環境
>>>>> s2-frameworkのバージョンは2.4.43です。
>>>>> s2-extensionのバージョンは2.4.43です。
>>>>> s2-tigerのバージョンは2.4.43です。
>>>>> s2config-coreのバージョンは1.0.3です。
>>>>> s2config-extensionのバージョンは1.0.3です。
>>>>>
>>>>> ■設定ファイル
>>>>>
>>>>> == ConfigCustomize.dicon
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
>>>>>  "http://www.seasar.org/dtd/components24.dtd">
>>>>> <components>
>>>>>  <!-- コンフィグの読み書きの実装を指定します -->
>>>>>  <component
>>>>> class="org.seasar.config.core.config.impl.ConfigPropertiesWriter"
>>>>> instance="prototype"/>
>>>>>  <component
>>>>> class="org.seasar.config.core.config.impl.ConfigPropertiesReader"
>>>>> instance="prototype"/>
>>>>> </components>
>>>>>
>>>>>
>>>>>
>>>>> == creator.dicon
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
>>>>>  "http://www.seasar.org/dtd/components24.dtd">
>>>>> <components>
>>>>>  <include path="convention.dicon"/>
>>>>>  <include path="customizer.dicon"/>
>>>>>  <component class="org.seasar.framework.container.creator.ActionCreator"/>
>>>>>  <component class="org.seasar.struts.creator.FormCreator"/>
>>>>>  <component class="org.seasar.framework.container.creator.ServiceCreator"/>
>>>>>  <component class="org.seasar.framework.container.creator.DtoCreator"/>
>>>>>  <component
>>>>> class="org.seasar.framework.container.creator.InterceptorCreator"/>
>>>>>  <component class="org.seasar.framework.container.creator.DaoCreator"/>
>>>>>  <component class="org.seasar.config.core.creator.ConfigCreator"/>
>>>>>  <component class="org.seasar.s2csv.creator.CsvCreator"/>
>>>>>  <component class="org.seasar.chronos.core.creator.TaskCreator"/>
>>>>>  <component class="org.seasar.chronos.core.creator.TriggerCreator"/>
>>>>>  <component name="logicCreator"
>>>>> class="org.seasar.framework.container.creator.LogicCreator"/>
>>>>>  <component class="org.seasar.config.core.creator.ConfigCreator"/>
>>>>> </components>
>>>>>
>>>>>
>>>>>
>>>>> == config.dicon
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
>>>>--
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>> java-ja
>> ja.netbeans.org
>>
>> 岩間 亮 <Ryo Iwama>
>> (id:happy_ryo)
>>
>> blog:http://d.hatena.ne.jp/happy_ryo/
>>
>> 参加プロジェクト
>>
>> NetBeans日本語コミュニティ:http://wiki.netbeans.org/JaNetBeans
>> Jiemamy(データベースリファクタリング):http://www.jiemamy.org/
>> S2Config(設定情報管理):http://s2config.sandbox.seasar.org/
>> Fisshplate(Excelテンプレート):http://fisshplate.sandbox.seasar.org/
>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////
>>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>



-- 
Naoki Takezoe


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