我正在尝试在 Tomcat 7 网络服务器上使用 Apache MyFaces 2.1.8 运行 JSF 2.0 网络应用程序。当我尝试加载一个简单页面时,出现此错误:
java.lang.IllegalStateException:没有为此应用程序配置工厂。如果 faces-initialization 根本不起作用,则会发生这种情况 - 确保正确包含基本 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>