ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

AndroMDAコミュのapplicationContextとDataSource

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Springカートリッジを使ったときの(しかもかなりマニアックな)話なのですが、、

core/target/src以下に

applicationContext.xml
applicationContext-dataSource.xml
applicationContext-localDataSource.xml
beanRefFactory.xml

というのが出来上がりますよね。(ehcacheは今回無視)

このうち、
applicationContext-dataSource.xml

applicationContext-localDataSource.xml
は、
beanRefFactory.xml
の中で切り替えて使うもののようです。

特にドキュメントには書いてなさそうなのですが、
ルートの「project.properties」で

dataSource.name=DefaultDS
dataSource=java:/${dataSource.name}

こいつらをコメントアウトしてやると、
applicationContext-dataSource.xml

applicationContext-localDataSource.xml
とこっそり切り替わります。

前者はアプリケーションサーバのDataSourceを参照、
後者は自前で接続情報を管理するタイプです。
要は、EAR/WARの外で接続先を変更したりする必要があるのかどうかってことですね。アプリが1個だけならJBossにもDefaultDSの定義があるのでそれほど意識しませんが、複数になってくると、それぞれDataSourceを定義してやる必要が出てきます。

殆どの場合、アプリはDataSource(もっと言うとDBのスキーマ定義)と切り離せないものだと思うので、それだったら接続先はアプリ(ear/war)内で抱えちゃった方私なら好きですけどね、、
まあ、アプリケーションサーバのモニターツールからDataSourceの管理(接続数とか)をいじりたい場合は別か。

ところで、JBossで複数のearファイルを(特にアプリの)を動かすときには注意が必要です。warだったら「crossContext="false"」とかの設定で済むのですけどね、どうも何もしないと複数のearを同じJBossインスタンス上に置くと共通のクラスローだを使いやがるようで。
でも一応、解決策を見つけました。JBoss上で(同じクラスライブラリを使っている)複数のearを動かすことは可能です。めんどくさいのでここには書きませんが(^^;

あまりないかも知れませんが、もし知りたい方がいましたら直接聞いてください。

コメント(0)

mixiユーザー
ログインしてコメントしよう!

AndroMDA 更新情報

AndroMDAのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング