IllegalStateException:找不到工厂javax.faces.context.FacesContextFactory的备份
如果将“备份”替换为“实现”,则更容易理解此异常。最终归结为 “我找到了JSF API,但是在与我找到JSF
API相同的类路径上下文中,没有JSF隐含” 。换句话说,您在运行时类路径中的某个地方有一个JSF API,该JSF API没有任何JSF
impl附带。例如,在相同的classpath上下文中具有
jsf-api.jar或什至
javaee.jar没有任何
jsf-impl.jar或没有
javax.faces.jar。请注意,Web应用程序可以具有多个类路径上下文。根据类加载规则,JSF
impl必须位于与第一个遇到的JSF API完全相同的位置,并且您需要绝对确保没有重复和/或冲突的版本。
在您的特定情况下,
我已经将此jar添加到我的项目中:
jstl-1.2.jar和javax.faces-api-2.2.jar
该
javax.faces-api-2.2.jar单是不正确的。有两个问题:
- 这就是“蓝图” API JAR,旨在提供给诸如Mojarra和MyFaces之类的JSF实现者。
- 您忘记了JSF实现JAR。
如果您想使用Mojarra,请按照其README中的安装说明进行操作。在您的特定情况下,请摆脱此情况,
javax.faces-api-2.2.jar然后将最新值
javax.faces-2.x.x.jar放在
/WEB-INF/lib或中
pom.xml,此异常应消失。



