クラスにアクセスできません。

このQ&Aのポイント
  • クラスにアクセスできず、エラーが発生します。
  • クラスにアクセスするための方法や解決策について調査中です。
  • エラーメッセージによると、クラスファイルが不正である可能性があります。
回答を見る
  • ベストアンサー

クラスにアクセスできません。

いつもお世話になっております。 ・windows2000 ・j2sdk-1_4_1_07-windows-i586 ・jakarta-tomcat-4.1.31 で、 Daykeisan.java というのを作成し、コンパイル後 作成されたclassファイルを c:\Plogram Files\Apache Group\Tomcat4.1\webapps\examples\WEB-INF\classes\javahello に格納しました。 <%@ page contentType="text/html;charset=Shift_JIS" %> <%@ page language="java" %> <%@ page import="java.util.*" %> <jsp:useBean id="syuu" class="javahello.Daykeisan" />           ・             ・           ・ とjspファイルを作成し、表示させようとすると、 HTTP Status 500 - C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\javahello\calendar2_jsp.java:45: javahello.Daykeisan にアクセスできません。 クラスファイル C:\Program Files\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF\classes\javahello\Daykeisan.class は不正です。 クラスファイル Daykeisan に不正なクラスがあります。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 javahello.Daykeisan syuu = null; ^ エラー 1 個 とエラーがかえってきます。 <jsp:useBean・・・> の使い方がよくないのだろうと思い調べていますが、解決に結びつきません。 どなたかご教授お願いいたします。

  • Java
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
noname#49664
noname#49664
回答No.3

>Daykeisan.javaのコンパイルが通っていてもコードミスというのはあるのでしょうか? 例えばpublicでないクラスになっているとかいったことがないかと思ったのですが・・そういう問題ではないようですね。  補足にあったソースコードをペーストして試してみましたが、こちらの環境では問題なく<jsp:useBean>で利用できました。ですのでソースコードなどの問題ではなさそうですね・・。  となると、Webアプリケーションの配置に問題があるとかでしょうか。配置したJSPとBeanクラスの場所やディレクトリ名、ファイル名などを再度チェックするとか。 また、Daykeisanクラスは、JSP以外からは利用できますか? 例えば、普通のアプリケーションのクラスを作成して、そこからDaykeisanを使ったりしても問題はありませんか? また、packageを指定せずにコンパイルし、直接classes内に配置した場合、動作はどうなるでしょうか? ・・思いつくのは、こんなところですが。 ところで、example内に配置して動かしていたようですが、そこに用意されているサンプルの中で、Beanを利用するものなどはありませんか? もしあれば、それの動作を確認してみてはどうでしょう。

miammi
質問者

お礼

Kyon2_PaPa様 アドバイスありがとうございました。 >普通のアプリケーションのクラスを作成して、そこからDaykeisanを使ったりしても問題はありませんか? というアドバイスを頂いたので、実行したところ問題はありませんでした。 >example内に配置して動かしていたようですが、そこに用意されているサンプルの中で、Beanを利用するものなどはありませんか? もしあれば、それの動作を確認してみてはどうでしょう。 あいにくBeanを利用したものはなく、新たに作成してみましても正常に動作しませんでした。 仕方なく、Tomcatをインストールしなおし実行したところ動くようになりました。 何度もアドバイス本当にありがとうございました。

その他の回答 (2)

noname#49664
noname#49664
回答No.2

>Daykeisan.javaでは >冒頭に package javahello; と記述しております。 そうなると、後は、Daykeisan.javaに書かれているDaykeisanクラスにpublicをつけるのを忘れているとか、そうしたソースコードの記述ミスぐらいしか思いつかないのですが・・。 作成したDaykeisan.javaのソースコードを掲載してもらうわけにはいきませんか?

miammi
質問者

補足

Kyon2_PaPa様 ご回答ありがとうございます。 package javahello; import java.text.DateFormat; import java.util.*; import java.util.Calendar; public class Daykeisan { Calendar calendar = null; public Daykeisan() { calendar = Calendar.getInstance(); Date trialTime = new Date(); calendar.setTime(trialTime); } public int getYear() { return calendar.get(Calendar.YEAR); }              ・              ・              ・ と記述しているのですが・・・ ソースコード全ては入りきれなかったので、はじめのほうを掲載しました。 Daykeisan.javaのコンパイルが通っていてもコードミスというのはあるのでしょうか? ご教授よろしくお願いいたします。

noname#49664
noname#49664
回答No.1

>クラスファイル Daykeisan に不正なクラスがあります。 ・・根本的な確認ですが。 Daykeisan.javaでは、冒頭に package javahello; と書いてありますか? つまり、javahelloパッケージ内にDaykeisanクラスはありますか? このエラーは、パッケージの指定と配置ディレクトリが不整合なときに起こると思うので。 ・・それと、なぜexamplesディレクトリを使うのでしょう。既存のWebアプリケーションディレクトリを流用するのは、わかりにくいし、問題が起こったとき原因を探しにくいです。新たにWebアプリケーションを作成して動かした方がいいですよ。

miammi
質問者

補足

Kyon2_PaPa様 ご回答ありがとうございます。 >Daykeisan.javaでは、冒頭に package javahello; と書いてありますか? Daykeisan.javaでは 冒頭に package javahello; と記述しております。 javahelloパッケージ内にはDaykeisan.classのみの格納でいいのですよね? >なぜexamplesディレクトリを使うのでしょう。 自分で作成できるものだと今学習しました・・・。 早速作成してみます!! 教えていただきありがとうございます。 初歩的な質問で本当に申し訳ありません・・・。

関連するQ&A

  • jspからjarを参照したいのですが

    /usr/local/tomcat/webapps/jsp-examples/の下にあるjspから jarを参照したいのですが、上手くいきません。 /usr/local/tomcat/webapps/jsp-examples/WEB-INF/classes/testPkgの 下にそのままクラスを置けば参照できます。 クラスには次のように宣言してありますし package jalanClass; jspの先頭でパッケージをインポートしてあります。 /usr/local/tomcat/webapps/jsp-examples/WEB-INF/classes上で jar cvf testPkg.jar testPkg jar cvf testPkg.jar testPkg/* などとして作ったjarを /usr/local/tomcat/webapps/jsp-examples/WEB-INF/classesに置いたのですが、NoClassDefFound エラーとなってしまいます。 CLASSPATHに/usr/local/tomcat/webapps/jsp-examples/WEB-NF/classes を通してみましたが駄目でした。 jarは今まで使った事がないので、根本的な事が分かっていないのかも知れませんが、教えてください。 宜しくお願いします。

    • ベストアンサー
    • Java
  • java.lang.ClassNotFoundException・・・

    いつもお世話になっております。 ・j2sdk1.4.1_07 ・Tomcat 4.1 ・apache_2.0.54-win32-x86-no_ssl.msi ・mysql-4.0.25-win32 ・mysql-connector-java-3.1.10 をダンロードし、環境変数なども設定しました。 package javahello; import java.sql.*; import java.util.*; public class DBConnectionPool {           ・           ・           ・ をコンパイルし、 <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="java.sql.*,javahello.DBConnectionPool" %> <%! DBConnectionPool pool; %>          ・          ・          ・ と作成し、 Tomcatのフォルダ]\webapps\examples\WEB-INF\classes\javahelloの下に DBConnectionPool.class を入れていざ http://localhost:8080/examples/javahello/jspdb.jsp で表示させようとすると、 java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver とエラーが帰ってきてしまいます・・・。 DBConnectionPool.classの置いてあげる場所が悪いのだろうと思い、過去ログなどで調べていても解決に結びつきませんでした・・・。 どこがわるいのでしょうか?? どなたかご教授のほどよろしくお願いします。

    • ベストアンサー
    • Java
  • サーブレットが実行できない

    似たような質問が何件かあるのですがそちらを読んでも解決できないので、質問させてください。 java servlet初心者なのですが、 http://www.hellohiro.com/servlet.htm のサイトをもとにサーブレット環境を自分のパソコンで作ろうとしています。 とりあえず ・Tomcat5.5.23をダウンロード ・http://localhost:8080でページが表示されることを確認 ・HelloWorldServlet.classを作る。 まで正常にできました。 その後、 [Tomcatのフォルダ]\webapps\examples\WEB-INF\classes にHelloWorldServlet.classをコピーし、 http://localhost:8080/examples/servlet/HelloWorldServlet  を実行したところ 404エラーが発生しました。 もともとwebappsファイル下にexamplesというファイルがなかったのですが、これは正常なのでしょうか? jsp-examplesファイルとservlets-examplesファイルがあったのでその中の \WEB-INF\classes下にHelloWorldServlet.classを入れてみたり、 webapps下に\examples\WEB-INF\classesを作って、その中にそのclassファイルを入れてみたりといろいろやってみたのですが、 まったくエラーは変わりません。 何が悪いのかわからないのですが、 何かアドバイスをいただけないでしょうか? お願いします。

    • ベストアンサー
    • Java
  • サーブレットとJSPのディレクトリ指定について

    現在WebサーバーとしてTomcatを使用しているのですが、題記の通り質問があります。 JSPのディレクトリ構成は C:\Program Files\Apache Tomcat 4.0\webapps\(JSPを保存するディレクトリ) というようにwebappsのしたにディレクトリを作成しました。 JSPからサーブレットを呼ぶために、 現在は C:\Program Files\Apache Tomcat 4.0\webapps\(JSPを保存するディレクトリ) \WEB-INF\classesディレクトリに格納しています。 できれば、sevletディレクトリを作りわかりやすい構成にしたいのですが、 そのようにやることはできるのでしょうか?

  • Tomcat内のJSPファイルを削除したい

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか?

    • ベストアンサー
    • Java
  • TomcatのJSP Examplesのページを開けません

    これからJSP・サーブレットを勉強しようと思っている初心者です。 Tomcatを起動しhttp://locaohost:8080でページは表示されるのですが、JSP ExamplesとServlet Examplesを開こうとすると、 The requested resource (/jsp-examples/) is not available. というメッセージがでて開く事が出来ません。 WindowsXP J2SE 環境変数は path C:\Program Files\Java\jdk1.5.0\bin;C:\Program Files\MySQL Server4.1\bin CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat5.5 JAVA_HOME C:\Program Files\Java\jdk1.5.0 CLASSPATH C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\servlet_api.jar; C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\jsp_api.jar; C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\jsp 10\WEB-INF\classes に設定してあります。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • JSPファイルを削除したいです。

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか? http://ksrd.yahoo.co.jp/PAGE=DT_ACTIVE/OUTLINK=1/QID=12100680882/AID=236975321/SIG=12dep0io1/EXP=1359004059/*-http%3A//tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html#Web_Application_Compilation 上記URLに何かそれらしき事が書いてあるのですがよく分かりません。 どうすればいいでしょうか? アクセスを制限する以外の方法でお願いします。

    • ベストアンサー
    • Java
  • JSP/サーブレットについて

    JSP/サーブレットのMVCモデル風にJSP、サーブレットと、Beanを作成したばあい、サーバーに各プログラム?をどう配置し、プログラム内でのお互いの具体な指定の仕方がぴんときません。 指定の仕方とはたとえばサーブレットからJSPを呼ぶときgetServletContext().getRequestDispatcher("xxxxx/aaaaaa.jsp").forward(......); とコーディングするとおもいますが、この場合のxxxxxと実際にサーバーに配置する場合の関連です。 サーブレットは...../WEB-INF/classesに置くとか、Beanは...../WEB-INF/classes/パッケージ名に配置するのはわかります。JSPは通常どこにおくのでしょうか?たとえばC:\Tomcat\webapps\examplesなのか C:\Tomcat\webapps\examples\jspなのか? その場合プログラムないではどう指定するのが一般的なのでしょうか? 文章がわかりにくくてすいません。 開発環境はWindowsXP,Apache,Tomcatの場合です。

  • JSP側でBeasを使用するとエラーが!?

    j2sdk1.4.0とtomcat4.1.18を使用しています。 JSP側のファイルMyJSPから自分で作成したクラスMyItemクラスをBeansで呼び出して使用したいのですがtomcatを起動し、Internet Explorerからhttp://localhost:8080/renshu/MyJSPを実行すると、 HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: JSPのクラスをコンパイルできません・・・ というようなエラーがでてしまいます。 MyJSPのファイル側では <%@ page import="MyItem, java.util.*" contentType="text/html; charset=Shift_JIS" %> <jsp:useBean id="item" class="MyItem" />  ・・・ のように宣言しています。 MyJSPのファイル場所は c:\Program Files・・・webapps\renshu\MyJSP.jsp MyItem.javaのファイル場所は c:\Program Files・・・webapps\renshu\web-inf\classes\MyItem.java の場所にそれぞれ置いてあります。 以前tomcat3.3.1を使用していた時は、エラーなく表示されていたのですが、tomcat4.1.18にバージョンアップしたら、エラーが発生してしまいました。ちなみに、tomcat4.1.18にバージョンアップした後でMyItem.javaファイルのコンパイルは通常にできました。なので、環境設定には問題ないと思われます。tomcat4.1.8は新たに追記でBeansを使用する時に何か宣言しなければならないのでしょうか?

    • ベストアンサー
    • Java
  • Javaサーブレット開発環境について

    学校でサーブレットの勉強をしているのですが、家でもやろうとしてTomcatをパソコンに入れたのですが、サーブレットだけで次のようなエラーが発生します。 例外 javax.servlet.ServletException: サーブレットインスタンスを割り当て中のエラーです 環境変数は CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.0 CLASSPATH .;C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\servlet-api.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\s\WEB-INF\classes JAVA_HOME C:\j2sdk1.4.2_10 PATH C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\s; ちなみにサーブレットのファイルは C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\s\WEB-INF\classes に入れてあります。 どなたかよろしくお願いします。

専門家に質問してみよう