• ベストアンサー

サーブレットで「シンボルを解決できません。」というエラー。

サーブレット初心者です。 以下のようなエラーは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();

  • rapun
  • お礼率65% (196/300)
  • Java
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • momozange
  • ベストアンサー率67% (21/31)
回答No.3

これはShop_ItemListクラス(サーブレット)の実行時に発生しているものですか? つまり画面からのリクエストで動作した結果ということ? DBinfo1クラスは単独実行できるのでしょうか。 例えばjunitや独自の自作クラスなどで。 コンパイルに失敗しているということはありませんか?

rapun
質問者

お礼

解決しました。 ありがとうございました。

その他の回答 (2)

  • momozange
  • ベストアンサー率67% (21/31)
回答No.2

(1)DBinfo1.classがクラスパス配下のday07ディレクトリに存在しない (2)DBinfo1.classは存在するがパッケージ宣言が間違っている (3)Shop_ItemListクラスのインポート宣言とDBinfo1クラスのパッケージ宣言に齟齬がある (4)クラス名にスペルミスがある(実は'DBInfo1'である、とか) 上記に該当するかもう一度見直してください。

rapun
質問者

お礼

回答ありがとうございます。 (1)はDBinfo1.class、Shop_ItemList.classともにclassesディレクトリの下のday07ディレクトリに入れてあるので大丈夫だと思います。 (2)はDBinfo.javaの最初にpackage day07;と宣言しているので大丈夫だと思います。 (4)は確認しましたが、大丈夫だと思います。 (3)なのですがDBinfo1クラスのパッケージ宣言はpackage day07;でいいと思うのですが、Shop_ItemListクラスのインポート宣言というのは何なのでしょう?同じフォルダに入れてあるので、サーブレットに必要なもの(import javax.servlet.http.*;とか)以外はいらないかなぁと思っているのですが・・・。 そこが何か間違っているのでしょうか? よろしくお願いします。

noname#49664
noname#49664
回答No.1

>以下のようなエラーはDBinfo1というクラスが見つからないということでいいのでしょうか? >一応、同じフォルダに一緒にファイルを入れているのですが・・・ そうですね。DBinfo1クラスが見つからないということだと考えてよいと思います。 同じフォルダにファイルを入れているということですが、これはソースコードファイルのことですか、それとも既に完成したクラスファイルが入れてあるのでしょうか。 もし、ソースコードはあるということなら、DBinfo1クラスが何かのエラーによってコンパイルできなかったということが考えられます。まずは、DBinfo1のソースコードだけコンパイルして、問題なくクラスファイルが生成されるか確認してみてはいかがでしょうか。 既にクラスファイルはある、ということでしたら、classpathでカレントディレクトリ(.)が見えなくなっている、など設定がおかしくなっているということはないでしょうか。またパッケージと配置場所が違っていないか、なども確認してみましょう。

rapun
質問者

お礼

回答ありがとうございます。 >同じフォルダにファイルを入れているということですが、これはソースコードファイルのことですか、それとも既に完成したクラスファイルが入れてあるのでしょうか。 すでにコンパイル済みのクラスファイルが同じフォルダにおいてあります。 一応クラスパスには(.)は登録してあるはずなのですが・・・。 >またパッケージと配置場所が違っていないか、なども確認してみましょう。 パッケージ名は二つのソースファイルの中に「WEB-INF\classes」の下のフォルダの名前(このフォルダにソースファイルとクラスファイルが入っている)で、package ..;と書いています。 ・・何故のエラーなんだろう・・・?(泣)

関連するQ&A

  • サーブレットを始めようとしたのですが・・・

    サーブレットを始めようとして、「10日でおぼえるJSP/サーブレット入門教室」を使って勉強しようとしているのですが、最初のファイルをコンパイルしようとしたら下記のようなエラーが出てコンパイルできませんでした。 SrvIntro.java:6: パッケージ javax.servlet は存在しません。 import javax.servlet.ServletException; ^ SrvIntro.java:7: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServlet; ^ SrvIntro.java:8: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServletRequest; ^ SrvIntro.java:9: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServletResponse; ^ SrvIntro.java:11: シンボルを解決できません。 シンボル: クラス HttpServlet 場所 : day07.SrvIntro の クラス public class SrvIntro extends HttpServlet{ ^ SrvIntro.java:12: シンボルを解決できません。 シンボル: クラス HttpServletRequest 場所 : day07.SrvIntro の クラス public void doGet(HttpServletRequest request, HttpServletResponse respon se) ^ SrvIntro.java:12: シンボルを解決できません。 シンボル: クラス HttpServletResponse 場所 : day07.SrvIntro の クラス public void doGet(HttpServletRequest request, HttpServletResponse respon se) ^ SrvIntro.java:13: シンボルを解決できません。 シンボル: クラス ServletException 場所 : day07.SrvIntro の クラス throws ServletException, IOException{ ^ エラー 8 個 調べた感じだとクラスパスの設定が間違っている可能性大ということらしいのですが、何度確かめてもクラスパスは合ってると思うのです・・ 何かこれじゃないか?という原因に心当たりがあればよろしくお願いします。

    • ベストアンサー
    • Java
  • シンボルを解決できません。 と出るんですが・・・

    どうすればいいんでしょうか。。 Kada5.java41:シンボルを解決できません。 シンボル:変数 i 場所  :Kada5の クラス if(i == 10){  ^ エラー1個 と表示されて、先に進むことが出来ません。 このエラーはどういうえらなのでしょうか?

    • ベストアンサー
    • Java
  • サーブレットからJavaBeanの利用

    すいません。初歩的です。 サーブレットの中でJavaBeanを利用する方法についてです。 ABCDE.java というJavaBeanを作成し、 サーブレット(ABCser.java)内にて // aeオブジェクトの作成 ABCDE ae = new ABCDE(); のように実行したいと考えているのですが、 コンパイルエラーとなります。 ABCser.java:13: シンボルを解釈処理できません。 シンボル: クラス ABCser 位置 : ABCser の クラス ABCDE ae = new ABCDE(); ^ ABCser.java:13: シンボルを解釈処理できません。 シンボル: クラス ABCser 位置 : ABCser の クラス ABCDE ae = new ABCDE(); ^ エラー 2 個 環境 Solaris9, apache-2.0.40, tomcat-4.0.4 構築したばかりのマシンであり、どこか設定の問題か? とも考えています。 お願いします。

    • ベストアンサー
    • Java
  • シンボルを解決できません

    サンプルプログラムをjavacでコンパイルすると 以下のようなエラーが出ます。 ----------------------------- C:\MyJava>javac menudemo.java menudemo.java:57: シンボルを解決できません。 シンボル: コンストラクタ Menu (java.lang.String) 場所 : Menu の クラス menu1 = new Menu("ファイル"); ^ menudemo.java:70: シンボルを解決できません。 シンボル: メソッド add (java.awt.MenuItem) 場所 : Menu の クラス menu1.add(menuitem1); ^ menudemo.java:71: シンボルを解決できません。 シンボル: メソッド add (java.awt.MenuItem) 場所 : Menu の クラス menu1.add(menuitem2); ^ menudemo.java:72: シンボルを解決できません。 シンボル: メソッド add (java.awt.MenuItem) 場所 : Menu の クラス menu1.add(menuitem3); ^ menudemo.java:75: java.awt.MenuBar の add(java.awt.Menu) は (Menu) に適用できません。 menubar1.add(menu1); ^ エラー 5 個 --------------------------------------------- サンプルプログラムは以下の通りです。 --------------------------------------------- import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class menudemo extends Applet implements ActionListener { Button button1, button2; MenuFrame menuWindow; public void init() { button1 = new Button("ウィンドウの表示"); add(button1); button1.addActionListener(this); button2 = new Button("ウィンドウの非表示"); add(button2); button2.addActionListener(this); menuWindow = new MenuFrame("デモメニュー"); menuWindow.setSize(100, 100); } public void actionPerformed(ActionEvent event) { if (event.getSource() == button1) { menuWindow.setVisible(true); } if (event.getSource() == button2) { menuWindow.setVisible(false); } } } class MenuFrame extends Frame implements ActionListener { MenuBar menubar1; Menu menu1; MenuItem menuitem1, menuitem2, menuitem3; TextField text1; MenuFrame(String title) { super(title); setLayout(new GridLayout(1, 1)); text1 = new TextField(""); add(text1); //メニューバーの生成 menubar1 = new MenuBar(); //メニューの生成 menu1 = new Menu("ファイル"); //メニュー項目の生成 menuitem1 = new MenuItem("Javaの"); menuitem2 = new MenuItem("世界へ"); menuitem3 = new MenuItem("ようこそ"); //イベントリスナーの登録 menuitem1.addActionListener(this); menuitem2.addActionListener(this); menuitem3.addActionListener(this); //メニューへの追加 menu1.add(menuitem1); menu1.add(menuitem2); menu1.add(menuitem3); //メニューバーへの追加 menubar1.add(menu1); //メニューバーを追加 setMenuBar(menubar1); } public void actionPerformed(ActionEvent event) { if (event.getSource() == menuitem1) { text1.setText("Javaの"); } if (event.getSource() == menuitem2) { text1.setText("世界へ"); } if (event.getSource() == menuitem3) { text1.setText("ようこそ"); } } } --------------------------------------------- テキストどおりに入力しているのですが、 いろいろ調べてみても どこがおかしいか自分では分かりませんでした。 どのようにすれば解決するかお教えください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • サーブレットのコンパイルについて

    はじめまして。 学校の課題の方でJSP/サーブレットをやっているのですが、サーブレットのコンパイルが通りません。 プログラムとエラーと環境変数は以下の通りです。 【プログラム】 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { printWriter out = response.getWriter(); out.println("hello"); } } 【エラー】 HelloServlet.java:2: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloServlet.java:3: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ HelloServlet.java:5: シンボルを解決できません。 シンボル: クラス HttpServlet 場所 : HelloServlet の クラス public class HelloServlet extends HttpServlet ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletRequest 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletResponse 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス ServletException 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:9: シンボルを解決できません。 シンボル: クラス printWriter 場所 : HelloServlet の クラス printWriter out = response.getWriter(); 【環境変数】 CATALINA_HOME C:\servletbook\apache-tomcat CLASSPATH %CATALINA_HOME%\common\lib\jsp-api.jar;%CATALINA_HOME%\webapps\atmarkit\WEB-INF\classes;%CATALINA_HOME%\common\lib\servlet-jsp.jar; よろしくお願いします。

  • サーブレットがコンパイルできません。

    サーブレット内で自作のクラスを使っています。 自作クラスの名前は、Daigakuでパッケージ名はkansaiです。 ですので、サーブレット内で package kansai; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import kansai.*; としてちゃんとkansaiをimportしていますが、 src\kansai\Uni.java:20: シンボルを見つけられません。 シンボル: クラス Daigaku 場所 : kansai.Uni の クラス Daigaku dai2 = new Daigaku(); というエラーメッセージが出てしまいます。 classes\kansaiディレクトリにちゃんとDaigaku.classはあります。 それ以外のエラーは発生していません。原因はなんでしょうか?

  • 【サーブレットのコンパイルエラーが解決できません】

    Servleteのコンパイルエラーについてご教授下さい。 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { がソースなのですが、コンパイルすると SearchServlet.java:12: シンボルを解決できません。 シンボル: クラス IOException 場所 : SearchServlet の クラス throws ServletException, IOException { エラー 1 個 とIOExceptionの下に^がついて表示されます。 CLASSPATHも %CATALINA_HOME%\webapps\wl_jsp\WEB-INF\classes %JAVA_HOME%\lib\tools.jar %CATALINA_HOME%\common\lib\servlet-api.jar と設定してあり本やネットで調べたのですが解決できませんでした。 教えて下さい!お願い致します。

    • ベストアンサー
    • Java
  • シンボルの解釈処理エラー

    http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/545.zip 上記のプログラムをコンパイルした所、以下のエラーが出て来ました。 javaを始めたばかりで、直し方が分かりません。 どなたか教えてもらえないでしょうか。 1.J120902のエラー kaguhls4% J120902.java:17: ';' がありません。 private enum Emode {sin.cos}; ^ J120902.java:17: シンボルを解釈処理できません。 シンボル: クラス enum 位置 : J120902 の クラス private enum Emode {sin.cos}; ^ J120902.java:18: シンボルを解釈処理できません。 シンボル: クラス Emode 位置 : J120902 の クラス private Emode mode=Emode.sin; ^ J120902.java:50: シンボルを解釈処理できません。 シンボル: メソッド setPreferredSize (java.awt.Dimension) 位置 : J120902 の クラス this.setPreferredSize(new Dimension(1200,400)); ^ J120902.java:88: シンボルを解釈処理できません。 シンボル: 変数 BLUE 位置 : java.awt.Color の クラス g.setColor(Color.BLUE); ^ J120902.java:90: シンボルを解釈処理できません。 シンボル: 変数 RED 位置 : java.awt.Color の クラス g.setColor(Color.RED); ^ エラー 6 個 2.J120905のエラー kaguhls4% J120905.java:77: シンボルを解釈処理できません。 シンボル: メソッド setPreferredSize (java.awt.Dimension) 位置 : J120905 の クラス this.setPreferredSize(new Dimension(kPanelSize,kPanelSize)); ^ エラー 1 個

  • シンボルを解決できません・・・?

    Java初心者です。 public class mondai5 { public static void main(String args[]) { String str = "abc"; if( str != null && str.index0f('a') != -1) { System.out.println("OK"); } else { System.out.println("BAD"); } } } これをコンパイルをしようとすると、このような表示が出ます。 シンボルを解決できません。 シンボル:メソッドindexOf(char) 場所:java.long.Stringのクラス   if( str != null && str.indexof('a') != -1)              ^ なにをしたらいいのかわかりません。 教えてください。

    • ベストアンサー
    • Java
  • シンボルが解決できません

    import java.applet.*; import java.awt.*; public class keiin extends Applet implements Runnable { int narabi[]=new int[10]; public void init(){ } public void start() { } public void paint(Graphics g) { for (int i=0; i==kun+1; i++) { g.drawString(narabi[i],i*30,30); } } public void run() { repaint(); num++; } } public void update(Graphics g) { paint(g); } } というプログラムを作っていて、javacでコンパイルすると、 「C:\Documents and Settings\Administrator\My Documents\ycworks\java\keirin\0.01\keiin.java:49:シンボルを解決できません。 シンボル:メソッド drawstring(int,int,int) 場所:java.awt.Graphicsのクラス g.drawString(narabi[i],i*30,30); ^ と出て、コンパイルされません。 Javacのある場所を環境変数に登録してコンパイルしてみたり、配列変数がおかしいのかと思い、narabi[i]を文字列(g.drawstring("hoge",50,30);)にしたり、試してみたのですが、効果なしです。 解決方法を教えてください

専門家に質問してみよう