プロが教えるわが家の防犯対策術!

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

・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・・・>
の使い方がよくないのだろうと思い調べていますが、解決に結びつきません。
どなたかご教授お願いいたします。

A 回答 (3件)

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




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

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

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

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

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

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

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

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

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

何度もアドバイス本当にありがとうございました。

お礼日時:2005/08/19 09:10

>Daykeisan.javaでは


>冒頭に package javahello; と記述しております。


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

この回答への補足

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
    • good
    • 0

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



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


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

この回答への補足

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

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

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

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

初歩的な質問で本当に申し訳ありません・・・。

補足日時:2005/08/17 17:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!