2010.05.06

FAQ 『StrutsによるWebアプリケーションスーパーサンプル 第2版』

StrutsによるWebアプリケーションスーパーサンプル第2版

●質問:サンプル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の設定をしていただければ動作するはずです。