Recently, in the process of deploying an old system in the company, the system cannot be started normally. In this case, some machines are allowed, and some machines cannot be properly displayed, the system is a web system developed a few years ago.
The error message is as follows:
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
Analysis: according to the preceding error log, the specific el method cannot be found. The system property org. apache. el. parser. SKIP_IDENTIFIER_CHECK to true is mentioned.
After checking through the Internet, I learned that in the new tomcat, for example, in tomcat 7 I am currently using, tomcat performs more rigorous checks on the syntax in El, therefore, the above error message is generated.
Solution:
$ CATALINA_BASE/conf/catalina. properties added
Org. apache. jasper. compiler. Parser. STRICT_QUOTE_ESCAPING = false
Org. apache. el. parser. SKIP_IDENTIFIER_CHECK = true
Systems that may encounter the above situations:
There is no problem when you use the old version of tomcat. When you switch to the new version of tomcat, the system can be started normally, but the content on the page cannot be displayed. You can check the system log, you can use the log to check whether the above problems exist.