Tomcat 7 javax.el.ELException
2014-11-05 10:26
204 查看
今天部署SSH项目的时候发现一个非常奇怪的问题,项目在tomcat6.0上无任何问题,但把项目部署到服务器的tomcat7上的时候出现了javax.el.ELException 。
起初还以为是jar包没有配置正确、jstl与standard的版本问题或tomcat6.0 web.xml没有配置正确,可是各种解决方法尝试后依然不成功。后来发现错误只存在于嵌套的cforeach循环中。在搜索资料对比tomcat6.0与tomcat7.0的区别和查询一些文章之后,发现:
tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错。
而我正好在嵌套的foreach循环中使用了new关键字。。。。
怎么解决呢?有三种,如下:
第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字;
第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}";
第三种:修改tomcat属性,忽略对EL表达式的关键字检查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。
原文出自: http://www.myexception.cn/h/810255.html
参考文档: http://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html#Expression_Language
起初还以为是jar包没有配置正确、jstl与standard的版本问题或tomcat6.0 web.xml没有配置正确,可是各种解决方法尝试后依然不成功。后来发现错误只存在于嵌套的cforeach循环中。在搜索资料对比tomcat6.0与tomcat7.0的区别和查询一些文章之后,发现:
tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错。
而我正好在嵌套的foreach循环中使用了new关键字。。。。
怎么解决呢?有三种,如下:
第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字;
第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}";
第三种:修改tomcat属性,忽略对EL表达式的关键字检查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。
原文出自: http://www.myexception.cn/h/810255.html
参考文档: http://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html#Expression_Language
相关文章推荐
- Tomcat 七 'javax.el.ELException' 的解决方式
- tomcat 7 javax.el.ELException
- Tomcat 7 'javax.el.ELException' 的解决方式(failed to parse the expression [${xxx}])
- Tomcat7中 javax.el.ELException 异常信息的处理
- jbpm4.4和tomcat6包冲突问题(javax.el.ELException: expression factory class not found )
- jbpm4.4和tomcat6包冲突问题(javax.el.ELException: expression factory class not found )
- Tomcat 7.0 'javax.el.ELException' 的解决方式
- javax.el.ELException: Cannot convert 4028b8813d13fb64013d154023c50035 of typ
- javax.el.ELException
- contains invalid expression(s): javax.el.ELException: Function ':not' not found
- Caused by: org.apache.jasper.JasperException: javax.el.ELException: java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a m
- javax.el.ELException: Failed to parse the expression 报错处理
- Caused by: javax.el.ELException: The identifier [new] is not a valid Java identifier as required by
- Tomcat启动报错:java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
- javax.el.ELException: The identifier [new] is not 错误问题原因
- javax.el.ELException: Failed to parse the expression 一个莫名的错误
- Tomcat6下使用jBPM-4出现 java.lang.LinkageError。javax/el/ExpressionFactory解决办法
- tomcat5.5.12 javax/el/ExpressionFactory 工程部署失败案例
- contains invalid expression(s): javax.el.ELException: Error Parsing
- javax.el.ELException的解决方式failed to parse the expression [${xxx}]