Interstage Application Serverにおいて、オートリロードでClassCastExceptionのエラーが発生します。
- classファイルを入れ替えてオートリロードさせると、ClassCastExceptionが発生します。原因と対処方法を教えてください。
- Tomcat 3.1ベースのServletサービスではリロード時にServletContextおよびHttpSessionのAttributeにsetされているオブジェクトの破棄は行わない仕様となっています。
そのため、Stringなどシステムクラスローダ上に存在するリロード対象外のオブジェクトであれば問題ありませんが、リロード対象のオブジェクトがsetされていた場合は、リロードのためのクラスローダの置き換えによってClassCastExceptionが発生します。
もし、リロード時もClassCastExceptionを発生させたくない場合は、interfaceをCLASSPATHに設定してシステムクラスローダ上にロードさせ、アプリケーション内ではこのinterfaceにcastしオブジェクトを参照します。
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 設計/開発 |