web-dev-qa-db-ja.com

java.lang.IllegalStateException:ファクトリjavax.faces.context.FacesContextFactoryのバックアップが見つかりませんでした

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

これはどのように引き起こされ、どうすれば解決できますか?

13

IllegalStateException:ファクトリjavax.faces.context.FacesContextFactoryのバックアップが見つかりませんでした

この例外は、「backup」を「implementation」に置き換えると理解しやすくなります。最終的に「JSF APIを見つけましたが、JSF APIを見つけた場所と同じクラスパスコンテキストにJSFが実装されている場所はありません」。つまり、実行時クラスパスのどこかにJSF APIがあり、JSF実装は何も付いていません。例えば。 jsf-api.jar あるいは javaee.jarなしjsf-impl.jarまたはjavax.faces.jar同じクラスパスコンテキストで。 Webアプリケーションは複数のクラスパスコンテキストを持つことができることに注意してください。 JSF実装は、クラスローディングルールに従って最初に検出されたJSF APIとまったく同じ場所に存在する必要があり、バージョンの重複や競合がないことを完全に確認する必要があります。

あなたの特定のケースでは、

このjarをプロジェクトに追加しました:jstl-1.2.jarおよびjavax.faces-api-2.2.jar

javax.faces-api-2.2.jarだけでは正しくありません。 2つの問題があります。

  • これは「ブループリント」API JARであり、 MojarraMyFaces などのJSF実装者を対象としています。
  • JSF実装JARを忘れました。

Mojarraを使用する場合は、そのインストール手順に従ってください [〜#〜] readme [〜#〜] 。あなたの特定のケースでは、それを取り除きますjavax.faces-api-2.2.jarと最新の javax.faces-2.x.x.jar/WEB-INF/libまたはpom.xmlそしてこの例外は消えるはずです。

以下も参照してください。

24
BalusC

私の同僚、stackoverflowの@Lookubのおかげで、彼は別のApacheサーバーを追加し、ポートを8084に設定して、すべてコンパイルしました。念のため、私たちはnetbeans 8.2を使用しています。これは、サービス>>サーバーメニューで行うことができます。お役に立てれば。

0
kayhan yüksel

Earプロジェクトのweblogic-application.xml

<?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>

次のjarバージョン番号は正確に一致する必要があります。

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