HOT Deployについて
SAStrutsでの開発は、HotDeployが非常に便利なんですが稀にイメージと違った動作をする事がある。今回もちょっとはまったのでメモ。
taglib用のstaticメソッドの中で、SingletonS2ContainerFactoryから取得したセッションスコープのコンポーネントを取得してローカル変数に代入しようとしたところキャストエラーが発生した。デバッグで追いかけてみても同じクラス間の代入でエラーが発生しているようにしか思えない。
!?!?という状態になりました。
Google先生に聞いてみたところ、Seasarのメーリングリストに気になるスレッドが。
http://ml.seasar.org/archives/seasar-user/2008-October/015959.html
要するに通常のクラスローダでロードしたクラスにHotDeploy用のクラスローダでロードしたクラスを代入しようとした為にキャストエラーが発生していた。もちろんこれは、CoolDeployの時は発生しない。原因を特定するのに半日も掛かりましたorz
HotDeployは、便利なのですが本番の動作(CoolDeploy)と動作が違ってくるのはやはり問題な気がします。