Jsp 找不到EL RI表达式工厂
我在我的应用程序中遇到以下异常 com.sun.faces.config.ConfigurationException: 它显示的是 容器的版本早于2.1,无法使用 查找EL-RI表达式的步骤 工厂, com.sun.el.ExpressionFactoryImpl。如果 不要使用JSP或EL RI,请确保 上下文初始化参数, com.sun.faces.expressionFactory,是 设置正确Jsp 找不到EL RI表达式工厂,jsp,jsf,el,Jsp,Jsf,El,我在我的应用程序中遇到以下异常 com.sun.faces.config.ConfigurationException: 它显示的是 容器的版本早于2.1,无法使用 查找EL-RI表达式的步骤 工厂, com.sun.el.ExpressionFactoryImpl。如果 不要使用JSP或EL RI,请确保 上下文初始化参数, com.sun.faces.expressionFactory,是 设置正确 如何在web.xml中设置EL详细信息异常表明需要使用JSP2.1。您需要确保您的web.x
如何在
web.xml
中设置EL详细信息异常表明需要使用JSP2.1。您需要确保您的web.xml
声明为Servlet2.5或更高版本,并且您的servletcontainer支持它(Tomcat6、Glassfish 2、JBoss as 5等或更高版本)。JSP2.1与Servlet2.5齐头并进。正确的Servlet 2.5声明web.xml
如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!-- Config here. -->
</web-app>
如果您使用的是较旧版本的servletcontainer,您实际上无法升级到至少与Servlet2.5兼容的servletcontainer,那么您需要首先让我们知道它是哪一个,以便我们可以发布更合适的答案/解决方法。这是因为最新的el jar不在类路径中。 这对我也有用 (参考)请参考链接
将以下内容添加到Web.xml中,这对我很有用
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
com.sun.faces.expressionFactory
com.sun.el.ExpressionFactoryImpl
您可以尝试删除Web.xml中的以下内容,这对我很有用
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
com.sun.faces.expressionFactory
com.sun.el.ExpressionFactoryImpl
更新web.xml后,也会出现同样的错误。但是,我没有添加属性version=“2.5”。有必要吗?我只是从另一个来源复制粘贴。要么环境根本不支持Servlet 2.5,要么类路径被旧版本的库污染了。首先,您使用的是什么环境(servletcontainer/server)?Tomcat 6.0?Tomcat 5.5?玻璃鱼v2?玻璃鱼v3?那么剩下的唯一合理的原因就是你的类路径被弄乱了。永远不要触摸JRE/lib
和JRE/lib/ext
文件夹。您不应该在Tomcat/lib
和Webapp/WEB-INF/lib
中添加/删除特定于servlet容器的库。如果有,您需要清理它。这是一个特定于servletcontainer的库。您不应该需要更新它。它应该已经包含在Tomcat/lib中,并且在那里保持不变。如果在Webapp/WEB-INF/lib
中有任何内容,则需要将其删除。查看新安装的Tomcat的Tomcat/lib
,并将其内容与Webapp/WEB-INF/lib
进行比较。如果webapp中有任何类似命名的库,如jspapi
、servlet api
等,则需要将它们全部从webapp/WEB-INF/lib
中删除。它们应该由servletcontainer本身提供,而不是由您的Web应用程序提供。我首先尝试了BalusC技巧,但错误仍然不断出现。添加最新的el jar后,错误消失了。