表达式语言跳过tomcat 7中的标识符检查
我收到了以下错误:
SEVERE: Servlet.service() for servlet jsp threw exception javax.el.ELException: The identifier [case] 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.
这是由于在tomcat 7默认情况下SKIP IDENTIFIER CHECKfunction是假的(在tomcat 6及以下版本中都是如此)并且我在正则表达式中使用“case”而case是标识符所以它抛出错误。
我找到了以下解决方案: javax.el.ELException:标识符[return]不是有效的Java标识符
但它对我不起作用,因为我不想在我的代码中进行更改。 所以我想要解决方案将tomcat 7配置为SKIP IDENTIFIER CHECK为true。
即使经过大量的谷歌搜索,我也没有办法做到这一点。 我正在使用eclipse juno和tomcat 7,请帮我看看。
终于得到了eclipse的解决方案。 将以下行添加到我指定的位置
-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
请查看以下一步一步的图像
STEP 1 :
STEP 2 :
STEP 3 :
干杯。 🙂
在CATALINA_HOME / bin中创建一个setenv。[bat | sh]文件(即与所有其他脚本一起)并在该文件中设置系统属性。 在Windows上,您将创建setenv.bat,其中包含以下内容:
SET CATALINA_OPTS=%CATALINA_OPTS% -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
在Linux上,您将使用以下内容创建setenv.sh:
export CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true"
您可以重复这些行(更改系统属性名称)以在同一个setenv。[bat | sh]文件中设置多个系统属性。
我们还可以在tomcat_home目录/ bin下的catalina.sh文件中添加以下命令
CATALINA_OPTS = “ – Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK =真”
我将目前的应用程序迁移到Tomcat 7时遇到了同样的问题(jsf 1.2 with ice faces 1.8.2)。 我已经解决了它,包括一个名为setenv.bat的bat文件,其中包含以下内容。 ‘SET CATALINA_OPTS =%CATALINA_OPTS%-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK = true’
我已将它包含在TomcatInstallationDirectory / bin中。
它是由catalina.bat文件读取的。 在下面的行’call“%CATALINA_BASE%\ bin \ setenv.bat”’。
因此我的jspx页面被正确呈现
我通过tomcat查看了以下文档:
https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt
请发布您所做的所有解决方案
例如,如果您正在使用Eclipse,则必须将以下行添加到Servers文件夹中的catalina.properties,(在Package Explorer中查找它,并选择相应的Tomcat文件夹):
org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
请记住,Eclipse使用不同的位置来配置而不是CATALINA原始目录。
值得一看Tomcat的属性页面, https://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html