- ベストアンサー
サーブレットで「シンボルを解決できません。」というエラー。
サーブレット初心者です。 以下のようなエラーはDBinfo1というクラスが見つからないということでいいのでしょうか? 一応、同じフォルダに一緒にファイルを入れているのですが・・・ よろしくお願いします。 Shop_ItemList.java:18: シンボルを解決できません。 シンボル: クラス DBinfo1 場所 : day07.Shop_ItemList の クラス DBinfo1 db_info = new DBinfo1(); ^ Shop_ItemList.java:18: シンボルを解決できません。 シンボル: クラス DBinfo1 場所 : day07.Shop_ItemList の クラス DBinfo1 db_info = new DBinfo1();
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これはShop_ItemListクラス(サーブレット)の実行時に発生しているものですか? つまり画面からのリクエストで動作した結果ということ? DBinfo1クラスは単独実行できるのでしょうか。 例えばjunitや独自の自作クラスなどで。 コンパイルに失敗しているということはありませんか?
その他の回答 (2)
- momozange
- ベストアンサー率67% (21/31)
(1)DBinfo1.classがクラスパス配下のday07ディレクトリに存在しない (2)DBinfo1.classは存在するがパッケージ宣言が間違っている (3)Shop_ItemListクラスのインポート宣言とDBinfo1クラスのパッケージ宣言に齟齬がある (4)クラス名にスペルミスがある(実は'DBInfo1'である、とか) 上記に該当するかもう一度見直してください。
お礼
回答ありがとうございます。 (1)はDBinfo1.class、Shop_ItemList.classともにclassesディレクトリの下のday07ディレクトリに入れてあるので大丈夫だと思います。 (2)はDBinfo.javaの最初にpackage day07;と宣言しているので大丈夫だと思います。 (4)は確認しましたが、大丈夫だと思います。 (3)なのですがDBinfo1クラスのパッケージ宣言はpackage day07;でいいと思うのですが、Shop_ItemListクラスのインポート宣言というのは何なのでしょう?同じフォルダに入れてあるので、サーブレットに必要なもの(import javax.servlet.http.*;とか)以外はいらないかなぁと思っているのですが・・・。 そこが何か間違っているのでしょうか? よろしくお願いします。
>以下のようなエラーはDBinfo1というクラスが見つからないということでいいのでしょうか? >一応、同じフォルダに一緒にファイルを入れているのですが・・・ そうですね。DBinfo1クラスが見つからないということだと考えてよいと思います。 同じフォルダにファイルを入れているということですが、これはソースコードファイルのことですか、それとも既に完成したクラスファイルが入れてあるのでしょうか。 もし、ソースコードはあるということなら、DBinfo1クラスが何かのエラーによってコンパイルできなかったということが考えられます。まずは、DBinfo1のソースコードだけコンパイルして、問題なくクラスファイルが生成されるか確認してみてはいかがでしょうか。 既にクラスファイルはある、ということでしたら、classpathでカレントディレクトリ(.)が見えなくなっている、など設定がおかしくなっているということはないでしょうか。またパッケージと配置場所が違っていないか、なども確認してみましょう。
お礼
回答ありがとうございます。 >同じフォルダにファイルを入れているということですが、これはソースコードファイルのことですか、それとも既に完成したクラスファイルが入れてあるのでしょうか。 すでにコンパイル済みのクラスファイルが同じフォルダにおいてあります。 一応クラスパスには(.)は登録してあるはずなのですが・・・。 >またパッケージと配置場所が違っていないか、なども確認してみましょう。 パッケージ名は二つのソースファイルの中に「WEB-INF\classes」の下のフォルダの名前(このフォルダにソースファイルとクラスファイルが入っている)で、package ..;と書いています。 ・・何故のエラーなんだろう・・・?(泣)
お礼
解決しました。 ありがとうございました。