我在我的申请中遇到以下异常。
com.sun.faces.config.ConfigurationException: 它似乎是JSP版本的 容器超过2.1并且无法使用 找到EL RI表达式 厂, com.sun.el.ExpressionFactoryImpl。如果 不要使用JSP或EL RI,请确保 上下文初始化参数, com.sun.faces.expressionFactory,是 正确设置。
如何在web.xml
。
答案 0 :(得分:8)
例外是告诉JSP 2.1是必需的。您需要确保将web.xml
声明为Servlet 2.5或更新版本,并确保您的servlet容器支持它(Tomcat 6,Glassfish 2,JBoss AS 5等,或更新版本)。 JSP 2.1与Servlet 2.5密切相关。声明web.xml
的正确Servlet 2.5如下所示:
<?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,你真的不能升级到至少一个兼容Servlet 2.5的版本,那么你需要先告诉我们它是哪一个,以便我们可以发布更合适的答案/的解决方法。
答案 1 :(得分:4)
这是因为最新的el jar不在classpath中。 它也适合我
(参考)请参阅链接 JSF 2.0 + Tomcat : It appears the JSP version of the container is older than 2.1…
答案 2 :(得分:1)
将以下内容添加到Web.xml中,它对我有用。
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
答案 3 :(得分:1)
您可以尝试在Web.xml中删除以下内容,它对我有用。
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>