0

Tomcat 7 Web サーバーで Apache MyFaces 2.1.8 を使用して JSF 2.0 Web アプリケーションを実行しようとしています。単純なページを読み込もうとすると、次のエラーが発生します。

java.lang.IllegalStateException: このアプリケーション用に構成されたファクトリーがありません。これは、faces の初期化がまったく機能しない場合に発生します。基本的な Faces アプリケーションに必要なすべての構成設定が適切に含まれていること、および必要なすべてのライブラリが含まれていることを確認してください。また、例外がないか、Web アプリケーションとコンテナーのログ出力を確認してください。

それを行っても何も見つからない場合は、TLD ファイルを介したコンテキスト リスナーの登録をサポートしない特別な Web コンテナを使用しており、コンテキスト リスナーが web.xml に設定されていないことが原因である可能性があります。典型的な構成は次のようになります。

<listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

それを修正するにはどうすればよいですか?ありがとう!

編集:

Pom.xml

<dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.8.3</version>
    </dependency>
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>
    <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>1.8</version>
    </dependency>
    <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.1.8</version>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.1.8</version>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-bundle</artifactId>
        <version>2.1.8</version>
    </dependency>
4

1 に答える 1

1

JSF ポートレット プロジェクトの設定が適切であるとわかっていたもの (つまり、web.xml、faces-config.xml、および私の場合は portlet.xml の値はすべて正確でした) を使用して、同じエラー メッセージが表示されました。

私の問題は、Apache commons jar ファイルが含まれていることが原因であることが判明しました。特に問題の原因となったものはまだ特定していませんが、プロジェクトから次の jar を依存関係として削除した後、エラーは表示されなくなりました。

  • commons-codec-1.3.jar
  • commons-fileupload-1.2.jar
  • commons-httpclient-3.1.jar
  • commons-io-1.4.jar
  • commons-lang-2.1.jar
  • commons-logging-1.1.1.jar

このリストを見ると、"commons-codec-1.3.jar" および "commons-logging-1.1.1.jar" jar は私のセットアップとあなたのセットアップの間で共通しているように見えるので、これらのいずれかまたは両方を削除することから始めて、何を見てください。違いは何ですか?

編集: web アプリケーションに commons-logging-1.1.1.jar が存在する別のプロジェクトで再び問題が発生しました。これを削除すると、エラーが表示されなくなりました。

于 2012-08-30T09:21:04.717 に答える