はじめまして。いつも「業務アプリケーション 短期開発入門」を参考にさせていただいてます。
現在 Java 1.5 , Apache Tomcat 5.5 , mysql(CDからインストール)という状態です。本書の第9章「アプリケーション・ユーザーの管理」のプログラムを参考にさせてもらい使用したいのですが、コンパイルがうまくいきません。
type 例外レポート
メッセージ
説明 The server encountered an internal error () that prevented it from fulfilling this request.
例外
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: /JSP/login/login_process.jsp の中の4行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method put(Object, Object) in the type HashMap is not applicable for the arguments (String, int)
JSPファイル: /JSP/login/login_process.jsp の中の4行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method parseInt(String, int) in the type Integer is not applicable for the arguments (Object)
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:389)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
day10.LogFilter.doFilter(LogFilter.java:38)
どの設定を直せばいいのかわかりません。
教えていただければと思い投稿させて頂きました。
よろしくお願い申し上げます。
現在 Java 1.5 , Apache Tomcat 5.5 , mysql(CDからインストール)という状態です。本書の第9章「アプリケーション・ユーザーの管理」のプログラムを参考にさせてもらい使用したいのですが、コンパイルがうまくいきません。
type 例外レポート
メッセージ
説明 The server encountered an internal error () that prevented it from fulfilling this request.
例外
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: /JSP/login/login_process.jsp の中の4行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method put(Object, Object) in the type HashMap is not applicable for the arguments (String, int)
JSPファイル: /JSP/login/login_process.jsp の中の4行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method parseInt(String, int) in the type Integer is not applicable for the arguments (Object)
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:389)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
day10.LogFilter.doFilter(LogFilter.java:38)
どの設定を直せばいいのかわかりません。
教えていただければと思い投稿させて頂きました。
よろしくお願い申し上げます。
投稿:チェン[midsub]/2008年 10月 28日 16時 43分
/更新:2008年 10月 28日 16時 45分
RE:「ログイン処理」
by 竹形 誠司[takegata]
竹形です。こんにちは。
お使いのTomcatとJavaのバージョンが本書で扱っているものと違うので、
それが原因かも知れません。こちらで環境を作って試してみますので、
しばらくお待ちください。
お使いのTomcatとJavaのバージョンが本書で扱っているものと違うので、
それが原因かも知れません。こちらで環境を作って試してみますので、
しばらくお待ちください。
投稿:竹形 誠司[takegata]/2008年 10月 28日 19時 13分
/更新:2008年 10月 28日 19時 13分
竹形です。どうも。
Java 1.5 , Apache Tomcat 5.5 の環境を作って試してみましたが、ご報告にあるようなエラーは再現できませんでした。エラーの内容は、
で、1つめの方は
1台のコンピュータに複数のバージョンのJavaが混在していると、ユーザーの環境ではJava1.5が動いていても、Tomcatが別のバージョンのJavaを使って動いているという可能性があります。Tomcat5.5のバージョンとあわせて今一度確認してみていただけますか?Tomcatのバージョンはエラー画面の下の方に表示されます。
2つめのエラーの方は、ちょっと原因がよく分かりません。本書のlogin_process.jspではparseIntメソッドを使っていないと思いますが、プログラムはそのまま使われているのでしょうか?
Java 1.5 , Apache Tomcat 5.5 の環境を作って試してみましたが、ご報告にあるようなエラーは再現できませんでした。エラーの内容は、
JSPファイル: /JSP/login/login_process.jsp の中の4行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method put(Object, Object) in the type HashMap is not applicable for the arguments (String, int)
と生成されたサーブレットのエラーです:
The method put(Object, Object) in the type HashMap is not applicable for the arguments (String, int)
JSPファイル: /JSP/login/login_process.jsp の中の4行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method parseInt(String, int) in the type Integer is not applicable for the arguments (Object)
の2つですね。生成されたサーブレットのエラーです:
The method parseInt(String, int) in the type Integer is not applicable for the arguments (Object)
で、1つめの方は
if(rs.next()){
user.put("id",rs.getInt("id"));
user.put("name",rs.getString("name"));
user.put("level",rs.getInt("level"));
}else{
strMessage="ログイン名またはパスワードが違います";
}
のputメソッドで出ているようですが、エラーの内容からすると、どうもお使いのJavaのバージョンが1.4か、それ以前ではないかという気がします。というのは、古いバージョンのJavaでは、HashMapのputメソッドにObject型の引数しか渡せませんでしたが、Java1.5からはどんな型の引数でも渡せるようになったからです。user.put("id",rs.getInt("id"));
user.put("name",rs.getString("name"));
user.put("level",rs.getInt("level"));
}else{
strMessage="ログイン名またはパスワードが違います";
}
1台のコンピュータに複数のバージョンのJavaが混在していると、ユーザーの環境ではJava1.5が動いていても、Tomcatが別のバージョンのJavaを使って動いているという可能性があります。Tomcat5.5のバージョンとあわせて今一度確認してみていただけますか?Tomcatのバージョンはエラー画面の下の方に表示されます。
2つめのエラーの方は、ちょっと原因がよく分かりません。本書のlogin_process.jspではparseIntメソッドを使っていないと思いますが、プログラムはそのまま使われているのでしょうか?
投稿:竹形 誠司[takegata]/2008年 10月 28日 20時 09分
/更新:2008年 10月 28日 21時 38分
お返事ありがとうございます。
お忙しいところ、貴重な時間使って頂きありがとうございます。
まだ、理解していないところが多く…
一度、整理しなおして取り組んでみます。
お忙しいところ、貴重な時間使って頂きありがとうございます。
まだ、理解していないところが多く…
一度、整理しなおして取り組んでみます。
投稿:チェン[midsub]/2008年 10月 28日 20時 58分
/更新:2008年 10月 28日 20時 58分
どういたしまして。
分からないことがあれば、遠慮なく質問してください。
執筆のヒントにさせていただきますので。
分からないことがあれば、遠慮なく質問してください。
執筆のヒントにさせていただきますので。
投稿:竹形 誠司[takegata]/2008年 10月 28日 21時 41分
/更新:2008年 10月 28日 21時 41分