[Seasar-user:3433] Re: S2Dao :動的DB接続

Yasuo Higa [E-MAIL ADDRESS DELETED]
2006年 3月 27日 (月) 20:37:11 JST


<[E-MAIL ADDRESS DELETED]> の、
   "[Seasar-user:3432]S2Dao:動的DB接続" において、
   "Matsumoto Chihiro <[E-MAIL ADDRESS DELETED]>"さんは書きました:

ひがです。

> 初めての投稿になります。よろしくお願いします。

> Eclipseのバージョンは3.1、j2seは1_4_10、s2-dao-1.0.31.zip、S2.3.7.zipを使用
> しています。
> 
> S2DaoでMS-SQLserver 2000に接続しているのですが、
> 年次でデータベース名が変わるので、名前を動的に変更する必要があります。
> 
> org.seasar.framework.exception.NoSuchConstructorRuntimeException: [ESSR0064]
> クラス(org.seasar.framework.util.ResourceUtil)のコンストラクタ
> (ResourceUtil())が見つかりません
> 
> http://ml.seasar.org/archives/seasar-user/2006-March/005268.htmlを読んで、
> j2ee.diconの設定は以下のようになっています。
> <!--MSSQLSERVERデータソースの動的切り替え参照テキスト-->
> <component name="msSQLdbname" 
> class="org.seasar.framework.util.ResourceUtil">
>   <!--<initMethod>@org.seasar.framework.util.ResourceUtil@ 
> getProperties("jp/co/xxx/TimeCard/main/resources/msSQLdbname.properties")</initMethod>-->
> 
>   		<initMethod name="getProperties">
>   			<arg>"jp/co/xxx/TimeCard/main/resources/msSQLdbname"</arg>
>   		</initMethod>
> </component>

aaa.dicon
<components>
  <component name="hoge">
    @[E-MAIL ADDRESS DELETED]('abc.properties')
  </component>
<component name="aaa">hoge.aaa</component>
</components>

abc.properties
aaa=111

public static void main(String[] args) {
    S2Container container =
        S2ContainerFactory.create("aaa.dicon");
    System.out.println("aaa:" + container.getComponent("aaa"));
}

のような感じで実現できます。今試しました。
class属性がないとだめだというのは、Kijimunaがいっているのでしょうか。
とりあえず無視しても大丈夫です。

> s2daoのプロジェクトが単体だとエラーになってしまい、別プロジェクトのseasarの
> (S2.3.7を解凍した)
> ライブラリをパスに設定しないといけないことです。
> 
s2daoのexampleで試しているのなら、同一ワークスペースにseasar2を
インポートする必要があります。

Yasuo Higa
The Seasar Foundation



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