Tomcat7中javax.el.ELException异常信息的处理

来源:互联网 发布:文件修复软件 编辑:程序博客网 时间:2024/05/18 02:42

 最近在部署公司的一个旧有系统的过程中,系统死活无法正常启动,情况是部分人的机器可以,部分人的机器无法正常显示,系统为几年前开发的web系统。

 错误信息如下:

Caused by: javax.el.ELException: The identifier [default] 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.at org.apache.el.parser.AstDotSuffix.setImage(AstDotSuffix.java:46)at org.apache.el.parser.ELParser.DotSuffix(ELParser.java:1069)at org.apache.el.parser.ELParser.ValueSuffix(ELParser.java:1035)at org.apache.el.parser.ELParser.Value(ELParser.java:980)at org.apache.el.parser.ELParser.Unary(ELParser.java:950)at org.apache.el.parser.ELParser.Multiplication(ELParser.java:714)at org.apache.el.parser.ELParser.Math(ELParser.java:634)at org.apache.el.parser.ELParser.Compare(ELParser.java:446)at org.apache.el.parser.ELParser.Equality(ELParser.java:340)at org.apache.el.parser.ELParser.And(ELParser.java:284)at org.apache.el.parser.ELParser.Or(ELParser.java:228)at org.apache.el.parser.ELParser.Choice(ELParser.java:185)at org.apache.el.parser.ELParser.Expression(ELParser.java:177)at org.apache.el.parser.ELParser.Function(ELParser.java:1263)at org.apache.el.parser.ELParser.NonLiteral(ELParser.java:1189)at org.apache.el.parser.ELParser.ValuePrefix(ELParser.java:1019)at org.apache.el.parser.ELParser.Value(ELParser.java:968)at org.apache.el.parser.ELParser.Unary(ELParser.java:950)at org.apache.el.parser.ELParser.Multiplication(ELParser.java:714)at org.apache.el.parser.ELParser.Math(ELParser.java:634)at org.apache.el.parser.ELParser.Compare(ELParser.java:446)at org.apache.el.parser.ELParser.Equality(ELParser.java:340)at org.apache.el.parser.ELParser.And(ELParser.java:284)at org.apache.el.parser.ELParser.Or(ELParser.java:228)at org.apache.el.parser.ELParser.Choice(ELParser.java:185)at org.apache.el.parser.ELParser.Expression(ELParser.java:177)at org.apache.el.parser.ELParser.DynamicExpression(ELParser.java:149)at org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:46)at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:115)... 98 more
分析:从上述的错误日志来看,是特定的el方法找不到。其中提到了 the system property org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true。

经过从网上查了一下,方才得知,在新的tomcat中,比如我当前使用的Tomcat7中,tomcat对El中的语法进行了更为严格的检查,所以才产生了上述的错误信息。

解决办法:

     $CATALINA_BASE/conf/catalina.properties 增加

   org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false  
   org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true

可能出现上述情况的系统:

         使用老版本的tomcat没有问题,当切换到新的tomcat版本之时,出现了系统可以正常启动,但是页面的内容无法显示的问题,可以查看一下系统日志,通过日志即可知道是否有上述类似的问题。



3 1
原创粉丝点击