wake-up-neo.com

java.lang.IllegalStateException: Die Sicherung für die Factory-Datei 'javax.faces.context.FacesContextFactory' konnte nicht gefunden werden

Ich habe mein Hallo-Welt-JSF-Projekt erstellt, aber bei der Bereitstellung auf Tomcat 7 erhalte ich folgende Ausnahme:

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)

Ich habe diese JARs zu meinem Projekt hinzugefügt: 

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

Wie wird das verursacht und wie kann ich es lösen?

12

IllegalStateException: Es wurde keine Sicherung für die Factory javax.faces.context.FacesContextFactory gefunden

Diese Ausnahme ist einfacher zu verstehen, wenn Sie "Sicherung" durch "Implementierung" ersetzen. Letztendlich läuft es auf "Ich habe die JSF-API gefunden, aber nirgends ein JSF-Impl in demselben Klassenpfad-Kontext, in dem ich die JSF-API gefunden habe". Mit anderen Worten, Sie haben eine JSF-API irgendwo im Laufzeitklassenpfad, die von keinem JSF-Impl begleitet wird. Z.B. mit einem jsf-api.jar oder sogar javaee.jar ohne jsf-impl.jar oder javax.faces.jar im selben Klassenpfad-Kontext. 

In Ihrem speziellen Fall

Ich hatte diese Gläser zu meinem Projekt hinzugefügt: jstl-1.2.jar und javax.faces-api-2.2.jar

Der javax.faces-api-2.2.jar alleine ist nicht richtig. Es gibt zwei Probleme:

  • Das ist die "Blueprint" API-JAR, die für JSF-Implementierer wie Mojarra und MyFaces gedacht ist.
  • Sie haben die JSF-Implementierungs-JAR vergessen.

Sofern Sie Mojarra verwenden möchten, befolgen Sie die Installationsanweisungen in der README . Entfernen Sie in Ihrem speziellen Fall diesen javax.faces-api-2.2.jar und geben Sie den neuesten javax.faces-2.x.x.jar in /WEB-INF/lib oder pom.xml ein. Diese Ausnahme sollte verschwinden.

Siehe auch:

21
BalusC

Dank My colleuge @Lookub bei stackoverflow fügte er einen weiteren Apache-Server hinzu und stellte den Port als 8084 ein, alles kompiliert. Als Beispiel verwenden wir netbeans 8.2. Sie können dies im Menü Dienste >> Server tun. Hoffe das hilft. 

0
kayhan yüksel

Sie müssen den weblogic-application.xml des Ohrprojekts in ändern

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-application xmlns:wls="http://xmlns.Oracle.com/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-application 
    http://www.bea.com/ns/weblogic/weblogic-application/1.0/weblogic-application.xsd">

    <prefer-application-packages>
        <package-name>org.opensaml.*</package-name>
        <package-name>org.slf4j.*</package-name>
        <package-name>antlr.*</package-name>        
    </prefer-application-packages>
    <prefer-application-resources>
        <resource-name>javax.faces.*</resource-name>
        <resource-name>com.Sun.faces.*</resource-name>
        <resource-name>com.bea.faces.*</resource-name>
        <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
        <resource-name>META-INF/services/com.Sun.faces.spi.FacesConfigResourceProvider</resource-name>
    </prefer-application-resources>
</weblogic-application>

Die folgenden Glasversionsnummern müssen genau übereinstimmen:

  • javax.faces-2.x.x.jar
  • jsf-api-2.x.x.jar
  • jsf-impl-2.x.x.jar
0