複数アプリケーションでJNDIリソースを共用する
Tomcat上で複数のWebアプリケーションをデプロイしている場合に、それらのアプリケーションで同一のJNDIリソース(DataSourceなど)を参照させたい時はserver.xmlのServer要素の子要素としてGlobalNamingResourcesを記述する。
<Server ...> <Listener .../>
<GlobalNamingResources> <!-- 共用するJNDIリソース --> <Resource name="jdbc/foo" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/foo"> ... </ResourceParams> </GlobalNamingResources>
<Context ...> ... </Context> </Server>
そして、JNDIリソースを利用したいWebアプリケーションのContext要素にResourceLink要素を記述する。
<Context ...>
<ResourceLink name="jdbc/foo"
global="jdbc/foo"
type="javax.sql.DataSource"/>
</Context>
これで、global属性に指定したグローバルなJNDIリソースをname属性で指定した名前で参照することができる。The GlobalNamingResources Component。
