どうでもよい前置きはこのぐらいにして、Tomcat7で会社の製品を動かすとJSPのEL式でsomaObj.class.nameとオブジェクトのクラス名を取得しようとしているところでエラーがでます。一言でいうと、会社の製品が全く動きません。ログには、
org.apache.jasper.JasperException: /WEB-INF/jsp/some.jsp (line: 4, column: 509) "${someObj.class.name eq 'java.lang.String'}" は無効な式を含んでいます: javax.el.ELException: The identifier [class] is not a valid Java identifier as required by section 1.19 of the EL specification (Identifier ::= Java language identifier). This check can be disabled by setting the system property org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true.
と出ています。ログを見れば対処方法がわかりますが、org.apache.el.parser.SKIP_IDENTIFIER_CHECKをtrueにして起動すればいいようです。以前のバージョンのTomcat6ではこの値がtrueになっていて、デフォルト値が変わったらしいです。経緯はしりませんが、パフォーマンスかセキュリティの事情なんでしょう。
ということで、linuxとかmacであれば、
CATALINA_OPTS="-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true" export CATALINA_OPTS ./catalina.sh run
で動きます。Windowsは知りません。

0 コメント:
コメントを投稿