-PR-
解決済み

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

  • すぐに回答を!
  • 質問No.1585713
  • 閲覧数206
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 71% (52/73)

いつもお世話になっております。

・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・・・>
の使い方がよくないのだろうと思い調べていますが、解決に結びつきません。
どなたかご教授お願いいたします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3

>Daykeisan.javaのコンパイルが通っていてもコードミスというのはあるのでしょうか?


例えばpublicでないクラスになっているとかいったことがないかと思ったのですが・・そういう問題ではないようですね。
 補足にあったソースコードをペーストして試してみましたが、こちらの環境では問題なく<jsp:useBean>で利用できました。ですのでソースコードなどの問題ではなさそうですね・・。
 となると、Webアプリケーションの配置に問題があるとかでしょうか。配置したJSPとBeanクラスの場所やディレクトリ名、ファイル名などを再度チェックするとか。

また、Daykeisanクラスは、JSP以外からは利用できますか? 例えば、普通のアプリケーションのクラスを作成して、そこからDaykeisanを使ったりしても問題はありませんか?

また、packageを指定せずにコンパイルし、直接classes内に配置した場合、動作はどうなるでしょうか?

・・思いつくのは、こんなところですが。

ところで、example内に配置して動かしていたようですが、そこに用意されているサンプルの中で、Beanを利用するものなどはありませんか? もしあれば、それの動作を確認してみてはどうでしょう。
お礼コメント
miammi

お礼率 71% (52/73)

Kyon2_PaPa様 アドバイスありがとうございました。
>普通のアプリケーションのクラスを作成して、そこからDaykeisanを使ったりしても問題はありませんか?
というアドバイスを頂いたので、実行したところ問題はありませんでした。

>example内に配置して動かしていたようですが、そこに用意されているサンプルの中で、Beanを利用するものなどはありませんか? もしあれば、それの動作を確認してみてはどうでしょう。

あいにくBeanを利用したものはなく、新たに作成してみましても正常に動作しませんでした。

仕方なく、Tomcatをインストールしなおし実行したところ動くようになりました。

何度もアドバイス本当にありがとうございました。
投稿日時 - 2005-08-19 09:10:17

その他の回答 (全2件)

  • 回答No.2

>Daykeisan.javaでは
>冒頭に package javahello; と記述しております。


そうなると、後は、Daykeisan.javaに書かれているDaykeisanクラスにpublicをつけるのを忘れているとか、そうしたソースコードの記述ミスぐらいしか思いつかないのですが・・。
作成したDaykeisan.javaのソースコードを掲載してもらうわけにはいきませんか?
補足コメント
miammi

お礼率 71% (52/73)

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のコンパイルが通っていてもコードミスというのはあるのでしょうか?
ご教授よろしくお願いいたします。
投稿日時 - 2005-08-18 11:51:16


  • 回答No.1

>クラスファイル Daykeisan に不正なクラスがあります。

・・根本的な確認ですが。
Daykeisan.javaでは、冒頭に package javahello; と書いてありますか? つまり、javahelloパッケージ内にDaykeisanクラスはありますか? このエラーは、パッケージの指定と配置ディレクトリが不整合なときに起こると思うので。


・・それと、なぜexamplesディレクトリを使うのでしょう。既存のWebアプリケーションディレクトリを流用するのは、わかりにくいし、問題が起こったとき原因を探しにくいです。新たにWebアプリケーションを作成して動かした方がいいですよ。
補足コメント
miammi

お礼率 71% (52/73)

Kyon2_PaPa様 ご回答ありがとうございます。

>Daykeisan.javaでは、冒頭に package javahello; と書いてありますか?

Daykeisan.javaでは
冒頭に package javahello; と記述しております。
javahelloパッケージ内にはDaykeisan.classのみの格納でいいのですよね?

>なぜexamplesディレクトリを使うのでしょう。
自分で作成できるものだと今学習しました・・・。
早速作成してみます!!
教えていただきありがとうございます。

初歩的な質問で本当に申し訳ありません・・・。
投稿日時 - 2005-08-17 17:01:14
このQ&Aで解決しましたか?
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ