今、MVCモデルで、社員のデータを登録したり、DBの中のデータを表示したり、というプログラムに挑戦中なのですが、また躓きました。
サーブレットが画面遷移担当なのですが、まず最初に新規登録かログインかを選択する画面(JSP)にうつります。そして新規登録のボタンを押すと画面遷移していくのですが、それはとりあえず完成しました(入力チェックはまだですが)。最初の画面→データ入力画面→データ確認画面→パスワード入力画面→最初の画面に戻る、といった感じです。DB(アクセス)をみるときちんとデータが入力されています。
問題はログインのほうです。最初の画面に社員番号とパスワードをいれるテキストがあって、そこにいれてから画面遷移をするとメニュー画面が現れ、データ訂正・データ表示等のボタン選択をします。そこでデータ訂正を押すと新規登録で使った「データ入力画面」に遷移するのですが、きちんとDBからとってきたはずの値が表示されず、空白のままです。
おぼつかないながらもログをみてみたところ、なにやら下記のエラーが2つ出ているようです。
其の一
LifecycleException: コンテナ StandardContext[/jsp10] はまだ起動されていません
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1147)
云々…
其の二
2003-08-09 18:07:54 StandardManager[/SyainData] セッション 2F258A0A42AEDDBCA2C1646579EF67EA のためにセッション属性 bean をシリアライズできません
java.io.NotSerializableException: java.util.PropertyResourceBundle
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
云々…
コードを載せていないので意味不明かもしれませんが、上記のエラーが何故出るのかお分かりの方いらっしゃいましたらご教示の程宜しくお願い致します<(_ _)>
No.1ベストアンサー
- 回答日時:
>其の二
Tomcatがオブジェクトを永続化(Serialize=ディスクへの保存)できないというエラーです。
HttpSessionにセットするオブジェクトは、java.io.Serializableインタフェースをimplementsしてください。
また、HttpSessionには、あまり大きなオブジェクトをセットしないようにしましょう。性能に影響します。
参考URL:http://www.dmz.hitachi-sk.co.jp/Java/Tech/servle …
この回答への補足
お忙しい中ご教示くださり、ありがとうございました。
>Tomcatがオブジェクトを永続化(Serialize=ディスクへの保存)できないというエラーです。
なるほど。シリアライズって意味がよくわからない、と思っていたので勉強になりました。
>HttpSessionにセットするオブジェクトは、java.io.Serializableインタフェースをimplementsしてください。
はい、SessionにセットするBeanクラスはSerializableインタフェースをimplementsしています(今回Serializableインタフェースをimplementsする理由がなんとなくわかりました。参考書にはBeanの場合はそう書くもんだ、としか載っていなかったので、とても勉強になりました。)
Serializableインタフェースをimplementsしているのに、それでもシリアライズできないのなぜなのでしょうか?
SessionにはBeanクラスをまるごとセットしているのですが、そのBeanがでかすぎてシリアライズできないのでしょうか?
>また、HttpSessionには、あまり大きなオブジェクトをセットしないようにしましょう。性能に影響します。
丁寧なアドバイスをありがとうございます。今のところ実現方法がSessionしかわからず悩んでいるところです。
クラスを使いこなして実現する、というビジョンが全然見えない私。まだまだ先は遠そうです。
今回はお忙しい中、本当にありがとうございました<(_ _)>
No.2
- 回答日時:
> Serializableインタフェースをimplementsしているのに、
> それでもシリアライズできないのなぜなのでしょうか?
> SessionにはBeanクラスをまるごとセットしているのですが、
> そのBeanがでかすぎてシリアライズできないのでしょうか?
エラーメッセージでは、java.util.PropertyResourceBundle が
シリアライズできないと言っています。
SessionにセットされるBeanに上記クラスが存在しているということはないでしょうか?
Sessionに保存するBeanがSerializableをimplementsしていても、その中の
フィールドにシリアライズできないオブジェクトが存在する
場合には、やはりエラーになります。
返事が遅くなり、大変申し訳ありませんでした。
質問してからいろいろとコードをいじってみたのですが、それでもやはり思い通りの動きをせず悩んでいました。とことが昨日の土曜日に別のパソコンで実行してみたとこと(私と同じTomcat4.0)ソースが全く一緒であるのにも関わらずきちんと値を保持して動いたのです。そして今日自分のパソで実行してみたのですが、ログにてエラー。
うーん、これはどういうことなんだろう? とりあえずソース自体に問題があるのではなく、Tomcatの設定(?)に問題があるらしい、ということがわかりました。もう少し状況を整理してみようと思います。
今回は私の為に時間を削って書き込みしていただき、ありがとうございました<(_ _)>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- ポイントサービス・マイル ポンタポイントの登録の仕方を教えてください 1 2023/01/19 22:56
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- HTML・CSS htmlで画面遷移させたい 1 2022/10/28 18:19
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- その他(クラウドサービス・オンラインストレージ) Microsoft Listと同じ使い方が出来るサービス 1 2022/11/21 09:01
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
C# ログイン画面からメイン画面...
-
遷移元を判定したい!
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
画像の縦横比固定の計算方法。
-
フロントエンドフレームワーク...
-
alertでHTMLのコードが出て...
-
プログラミングに詳しい方、HTA...
-
セッション切れでのリクエスト...
-
アドレスバーに引数を表示させ...
-
非アクティブな画面を操作する...
-
ServletからServletへの値渡し
-
プログラミングで例えばゲーム...
-
トップページからクイズAを選択...
-
リンク先として、ページの途中...
-
HTMLのINPUTから画面表示
-
Googleキーワードについて キー...
-
javaでプリントスクリーン(ス...
-
【swing】ボタンクリックにより...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
画面遷移を行わずに同一ページ...
-
プログラミングで例えばゲーム...
-
フロントエンドフレームワーク...
-
Java-jspの画面入力値保持について
-
遷移元を判定したい!
-
ASP.NET 画面遷移前の状態を保...
-
Googleキーワードについて キー...
-
Javaプログラミングの質問にな...
-
C言語で今まで表示していた画面...
-
ボタンを押したあとに画像を表...
-
セッション切れでのリクエスト...
-
C# ログイン画面からメイン画面...
-
JavaScriptでページが更新され...
-
ServletからServletへの値渡し
-
ZOOMでオンラインミーティング
-
登録後、呼び出し元ページに戻...
-
サブミット後、自動的に画面を...
-
アドレスバーに引数を表示させ...
-
Beautiful Soupのインストール...
おすすめ情報