- - PR -
ServletContextの属性について。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-28 01:00
超初心者なので、基礎的な質問させてください。
ServletContextListenerをimplementsしたクラスを作成し、 アプリケーション起動時に初期設定を行っております。 この初期設定でインスタンスしたクラス(別途作成。Objectの子)を リクエスト時に参照する為、ServletContextへsetAttribute メソッドで属性としてセットしております。 ここで質問なのですが、上記のクラス(Objectの子)は、 Serializableをimplementsしておかないと、リクエスト時に 参照できなくなるのでしょうか? Serializableをimplementsしない状態で、アプリケーションを 作成し、稼動させてみたのですが、とりあえずは稼動しました。 ただ、別の環境で起動しているものは、ある程度の時間経過 (この間、何度もアクセスあり)した段階で、どうも参照不可と なっているようなのです。 分かりにくい説明で申し訳ありませんが、ご助言をお願い致します。 | ||||
|
投稿日時: 2008-03-28 10:52
ServletContextに入れる属性はSerializableでなくてもよいです。 リクエスト時に参照できなくなるのは別の理由だと思います。 | ||||
|
投稿日時: 2008-03-29 00:25
あしゅさん、
回答頂き、ありがとうございました。 Serializableでなくとも良いということは、やはり、 別の原因ですね。 再度、調べて、別途、質問させて頂きます。 | ||||
|
投稿日時: 2008-04-02 18:01
時間経過によって参照不可になるというのが、なんか気になります。 サーブレットコンテナに何を使用しているか記載されていない為なんとも言えませんが、 もしかしたら稼働中にメモリが少なくなった段階で、ServletContextの属性がシリアライズ され磁気ディスクに退避されているのかも・・・なんて思いました。 もしそうなのであればSerializableをインプリメントしていない場合はシリアライズに 失敗すると思われるので、その後に当該の属性を参照しようとしてデシリアライズも当然 失敗しているとか。どうでしょ?あくまで推測の域を出ませんが。 |
1