[Seasar-user:20748] Re: TomcatからのUndeploy時にエラーが発生
Watanabe, Satoshi (SDNA)
[E-MAIL ADDRESS DELETED]
2011年 5月 13日 (金) 10:47:06 JST
早速のご回答ありがとうございます。
渡辺です。
> Seasar2 の Jar ファイル (s2-framework-2.4.43.jar) を
> <tomcat>/lib に配置していませんか?
確認してみましたが、s2-frameworkはtomcat/libに配置しておりませんでした。
各アプリケーションのWEB-INF/lib以下に配置しております。
ただ、JDBCドライバ自信(mysql-connectorを利用)は、Tomcat/lib以下に配置
しております。
試しにこのTomcat/lib以下のmysql-connectorをアプリケーションのWEB-INF/lib
に配置した所、JDBCドライバのクラスローダがWebappClassLoaderになった事を
確認しました。
ただ、配置されているアプリケーションによっては、JDBC Realmを利用したい
状況があり、mysql-connectorはTomcat/lib以下に配置せざるを得ない状況です。
この状況ですと、Tomcatがmysql-connectorをロードするタイミングによっては、
Seasar2が抱えるmysql-connectorのクラスローダがStandardClassLoaderになって
しまう可能性が出てくるという認識です。
※試しに実験してみたところ、JDBC Realm認証後Seasar2でJDBC接続を行うと、
Seasar2が利用しているmysql-connectorのクラスローダはStandardClassLoader
になってしまうようでした。
また、上記状況の認識が正しいかわからない中ではありますが、上記実験の中で、
複数のSeasar2を利用したアプリケーション(mysql-connectorを各アプリケーションの
WEB-INF/libに移動済でWebappClassLoaderによってロードされている)が乗った
Tomcat上で、任意のSeasar2アプリケーションをアンロードすると、すべてのSeasar2を
利用しているアプリケーションが参照しているmysql-connectorがderegister
されているようでした。
※このとき、StandardClassLoaderがロードしているmysql-connectorはderegister
されていませんでした
※これについては軽く試しただけなので、確実ではないかもしれません。
上記のような結果及び認識をもっておりますが、いかがでしょうか。
---
Satoshi Watanabe
[E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内