[Seasar-user:14730] Re: [S2Dao] データソースを動的に変更したい

松崎 学 [E-MAIL ADDRESS DELETED]
2008年 6月 17日 (火) 18:58:18 JST


中村さん

松崎です。いつもお世話になっております。

うまくいかない箇所があるので質問させてください。
DBセッションの機能を使っているので、インターセプタではなく
Filterを作りました。

まず、前回の現状説明で言葉足らずだった部分がありました。すみません。

お客様毎に1つづつDBを立てているのですが、
そのDBの中でさらにサブシステム毎にスキーマが分かれています。

ここを参考にスキーマ毎のデータソースを設定しています。
http://www.seasar.org/wiki/index.php?FAQ%2FS2DAO#w7da6e0e

そして、お客様毎にjdbc1.dicon、jdbc2.diconを入れ替えて
warファイルを作成している状態です。

うまくいかない箇所ですが、
諸事情によりスキーマ毎のコネクションが必要だったので、
以下のようにBindingアノテーションをつかっているのです。
------------
@Binding("jdbc_master.dataSource")
public final void setMasterDataSource(DataSource masterDataSource) {
    this.masterDataSource = masterDataSource;
}
@Binding("jdbc_financial.dataSource")
public final void setFinancialDataSource(DataSource financialDataSource) {
    this.financialDataSource = financialDataSource;
}
------------

アノテーションなので動的に切り替えが出来ず、以下の例外が発生します。

------------
[ESSR0059]クラス(jp.co.camnet.macs.web.login.LoginPage$$EnhancedByS2AOP$$1826b5c)の
プロパティ(masterDataSource)の設定に失敗しました。
理由はorg.seasar.framework.exception.OgnlRuntimeException:
[ESSR0073]OGNLで例外が発生しました。
理由は[ESSR0046]コンポーネント(dataSource)が見つかりません
------------

以上、よろしくお願い致します。

On Fri, 13 Jun 2008 21:25:04 +0900
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:

> 中村(taedium)です。
> 
> > S2Daoでデータソースを動的に変更する事はできますか?
> 
> はい、できます。
> 機能としてはSeasar2本体に含まれています。
> 
> 先ほどドキュメントを書きましたのでこちらをご覧ください。
> 
> http://s2container.seasar.org/2.4/ja/jdbc.html#DataSourceDynamicSwiching
> 
> この例ではユーザーの種類で切り替えていますが、
> URLで切り替えるように読み替えてください。
> -- 
> Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

--
松崎 学 <[E-MAIL ADDRESS DELETED]>



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