●質問:サンプル2-1.warにおける、エラーに関して
サンプル2-1をEclipseで動かそうとしたら、エラーにより動きませんでした。エラーメッセージは以下の通りです。
< ご注意 >
本書籍のサンプルは、「付録CD-ROMに収録されているサンプルとアプリを使うことで」動作するように書かれています。従って、サンプルやアプリを、外部から導入(アップバージョン)された場合は、正しく動作しない可能性があります。
サンプルやアプリを、外部から導入(アップバージョン)された際には、基本的にはサポート範囲外ですので、ご自分の責任においてお使いくださいますよう、くれぐれもお願いいたします。
type 例外レポート
メッセージ
説明 The server encountered an internal error () that prevented it from
fulfilling this request.
例外
org.apache.jasper.JasperException: /view/catalog.jsp(24,81) Attribute
value (String)request.getAttribute("offset") is quoted with " which
must be escaped when used within the value
org.apache.jasper.compiler.DefaultErrorHandler.jspError(Defaul
tErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispa
tcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispa
tcher.java:198)
org.apache.jasper.compiler.Parser.parseQuoted(Parser.java:301)
org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:250)
org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:212)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:155)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1252)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
org.apache.jasper.compiler.Parser.parseBody(Parser.java:1675)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1022)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1290)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserCont
roller.java:216)
org.apache.jasper.compiler.ParserController.parse(ParserContro
ller.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
org.apache.jasper.JspCompilationContext.compile(JspCompilation
Context.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServlet
Wrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
filter.EncodingFileter.doFilter(EncodingFileter.java:30)
●回答
Tomcatのインストールフォルダの下のconf/catalina.properties に
org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
という行を追加して再起動すればよいと思います。
EclipseはConfをコピーしているはずなので、上記の修正をした後、対象サーバを削除していただき、もう一度、新規>サーバでTomcatの設定をしていただければ動作するはずです。