JasperException
日本語 | ジャスパー例外 |
英語 | jasper exception |
ふりがな | じゃすぱーえくせぷしょん |
フリガナ | ジャスパーエクセプション |
JSPをコンパイルする時に投げられる例外。
パッケージも含めたクラス名はorg.apache.jasper.JasperException。
例外の一種。
TomcatのJSPエンジン「Jasper」が、JSPをコンパイルする際に、文法的な誤りからコンパイルエラーが発生した時に投げる例外。
通常のJavaプログラムであれば、プログラムの誤りはコンパイルエラーとなり、例外とはならないが、JSPの場合、実行時にコンパイルを行うため、例外という形でコンパイルエラーを出力する。
メッセージが複雑なうえ、例外として投げられるため分かりにくいが、れっきとしたコンパイルエラーであり、決して発生させてはならない例外である。
といっても、この例外を拾う方法はないため、コンパイルエラーを取り除く以外に解決法はない。
ただし、JSPのコンパイルエラーは非常に分かりにくく、一見、それがコンパイルエラーであることが分かりにくいことが多い。
タグライブラリや暗黙オブジェクトに関係するもの、もしくはJSP宣言等の誤った使用方法によってもたらされることが多く、その場合、JSPの仕組みを理解していないと解決は難しい。
JSPは、コンパイル前に「Javaプログラム」に変換される。Tomcatであればインストールディレクトリのworkディレクトリ下に、JSPを変換したソースファイルが出力され、これがコンパイルされる。
そのため、JSPのコンパイルエラーの発生源がJSPから分からない場合には、JSPから変換した「Javaプログラム」を見ることを強く勧める。
パッケージも含めたクラス名はorg.apache.jasper.JasperException。
例外の一種。
TomcatのJSPエンジン「Jasper」が、JSPをコンパイルする際に、文法的な誤りからコンパイルエラーが発生した時に投げる例外。
通常のJavaプログラムであれば、プログラムの誤りはコンパイルエラーとなり、例外とはならないが、JSPの場合、実行時にコンパイルを行うため、例外という形でコンパイルエラーを出力する。
メッセージが複雑なうえ、例外として投げられるため分かりにくいが、れっきとしたコンパイルエラーであり、決して発生させてはならない例外である。
といっても、この例外を拾う方法はないため、コンパイルエラーを取り除く以外に解決法はない。
ただし、JSPのコンパイルエラーは非常に分かりにくく、一見、それがコンパイルエラーであることが分かりにくいことが多い。
タグライブラリや暗黙オブジェクトに関係するもの、もしくはJSP宣言等の誤った使用方法によってもたらされることが多く、その場合、JSPの仕組みを理解していないと解決は難しい。
JSPは、コンパイル前に「Javaプログラム」に変換される。Tomcatであればインストールディレクトリのworkディレクトリ下に、JSPを変換したソースファイルが出力され、これがコンパイルされる。
そのため、JSPのコンパイルエラーの発生源がJSPから分からない場合には、JSPから変換した「Javaプログラム」を見ることを強く勧める。
参考サイト
<%-- webapps/sample-servlet/sample.jsp --%>
<%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
pageEncodingには、このファイルを保存した時の文字コードを指定してください。
Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>
<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>
<%
// コンパイルエラーを発生させます。
ArrayList arylst;
// コンパイルエラー:
// ↓これ。
// org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
//
// JSPファイル: /sample.jsp の中の行: 14でエラーが発生しました
//
// 生成されたサーブレットのエラーです:
// [javac] Compiling 1 source file
//
// D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:53: シンボルを解決できません。
// シンボル: クラス ArrayList
// 場所 : org.apache.jsp.sample_jsp の クラス
// ArrayList arylst;
// ^
// エラー 1 個
%>
</body>
</html>
<%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
pageEncodingには、このファイルを保存した時の文字コードを指定してください。
Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>
<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>
<%
// コンパイルエラーを発生させます。
ArrayList arylst;
// コンパイルエラー:
// ↓これ。
// org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
//
// JSPファイル: /sample.jsp の中の行: 14でエラーが発生しました
//
// 生成されたサーブレットのエラーです:
// [javac] Compiling 1 source file
//
// D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:53: シンボルを解決できません。
// シンボル: クラス ArrayList
// 場所 : org.apache.jsp.sample_jsp の クラス
// ArrayList arylst;
// ^
// エラー 1 個
%>
</body>
</html>
<%-- webapps/sample-servlet/sample.jsp --%> <%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%> <%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%-- pageEncodingには、このファイルを保存した時の文字コードを指定してください。 Windowsであれば"Windows-31J"を指定すればいいでしょう。 --%> <html> <head> <title>JSPのサンプル</title> </head> <body> <% // コンパイルエラーを発生させます。 ArrayList arylst; // コンパイルエラー: // ↓これ。 // org.apache.jasper.JasperException: JSPのクラスをコンパイルできません // // JSPファイル: /sample.jsp の中の行: 14でエラーが発生しました // // 生成されたサーブレットのエラーです: // [javac] Compiling 1 source file // // D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:53: シンボルを解決できません。 // シンボル: クラス ArrayList // 場所 : org.apache.jsp.sample_jsp の クラス // ArrayList arylst; // ^ // エラー 1 個 %> </body> </html>