gpt4 book ai didi

jsf - java.lang.IllegalStateException : Could not find backup for factory javax. 面.context.FacesContextFactory

转载 作者:行者123 更新时间:2023-11-28 21:45:00 35 4
gpt4 key购买 nike

我创建了我的 hello world JSF 项目,但是当我部署到 Tomcat 7 时,出现了这个异常:

java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory. 
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1135)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:379)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:350)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

我已将这些 JAR 添加到我的项目中:

  • jSTL-1.2.jar
  • javax.faces-api-2.2.jar

这是怎么引起的,我该如何解决?

最佳答案

IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory

如果将“backup”替换为“implementation”,则此异常更容易理解。它最终归结为 “我找到了 JSF API,但在与我找到 JSF API 的位置相同的类路径上下文中没有任何 JSF impl”。换句话说,您在运行时类路径中的某处有一个 JSF API,它没有伴随任何 JSF impl。例如。有一个 jsf-api.jar 甚至 javaee.jar 而没有任何 jsf-impl.jarjavax.faces.jar 在相同的类路径上下文中。请注意,一个 Web 应用程序可以有多个类路径上下文。根据类加载规则,JSF impl 必须出现在与第一次遇到的 JSF API 完全相同的位置,并且您需要绝对确保没有重复和/或冲突的版本。

在您的具体情况下,

I had added this jars to my project : jstl-1.2.jar and javax.faces-api-2.2.jar

单独使用 javax.faces-api-2.2.jar 是不对的。有两个问题:

  • 这是“蓝图”API JAR,专供 JSF 实现者使用,例如 MojarraMyFaces .
  • 您忘记了 JSF 实现 JAR。

如果您想使用 Mojarra,请按照其 README 中的安装说明进行操作.在您的特定情况下,去掉那个 javax.faces-api-2.2.jar 并放入最新的 javax.faces-2.x.x.jar/WEB-INF/libpom.xml 中,此异常应该消失。

另见:

关于jsf - java.lang.IllegalStateException : Could not find backup for factory javax. 面.context.FacesContextFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25369903/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com