Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat 没有为此应用程序配置工厂_Tomcat_Jsf 2_Myfaces - Fatal编程技术网

Tomcat 没有为此应用程序配置工厂

Tomcat 没有为此应用程序配置工厂,tomcat,jsf-2,myfaces,Tomcat,Jsf 2,Myfaces,我正在尝试在Tomcat 7 Web服务器上使用Apache MyFaces 2.1.8运行JSF 2.0 webapp。当我尝试加载简单页面时,出现以下错误: java.lang.IllegalStateException:没有为此应用程序配置工厂。如果faces初始化根本不起作用,则会发生这种情况-确保正确包含基本faces应用程序所需的所有配置设置,并且包含所有必要的LIB。还要检查web应用程序和容器的日志输出是否存在任何异常 如果您这样做了,但什么也没找到,那么错误可能是因为您使用了一

我正在尝试在Tomcat 7 Web服务器上使用Apache MyFaces 2.1.8运行JSF 2.0 webapp。当我尝试加载简单页面时,出现以下错误:

java.lang.IllegalStateException:没有为此应用程序配置工厂。如果faces初始化根本不起作用,则会发生这种情况-确保正确包含基本faces应用程序所需的所有配置设置,并且包含所有必要的LIB。还要检查web应用程序和容器的日志输出是否存在任何异常

如果您这样做了,但什么也没找到,那么错误可能是因为您使用了一些特殊的web容器,这些容器不支持通过TLD文件注册上下文侦听器,并且您的web.xml中没有设置上下文侦听器。 一个典型的配置如下所示

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

org.apache.myfaces.webapp.StartupServletContextListener
我该怎么做才能修好它?塔克斯

编辑:

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>

公地小海狸
公地小海狸
1.8.3
通用编解码器
通用编解码器
1.3
公地收藏
公地收藏
3.2.1
公地蒸煮器
公地蒸煮器
1.8
公地蒸煮器
公地蒸煮器
2.1
公用记录
公用记录
1.1.1
org.apache.myfaces.core
MyFacesImpl
2.1.8
org.apache.myfaces.core
MyFacesAPI
2.1.8
org.apache.myfaces.core
myfaces束
2.1.8

我使用了我知道是很好的JSF portlet项目设置(即web.xml、faces-config.xml和我的portlet.xml中的值都是准确的),遇到了相同的错误消息

事实证明,我的问题是由包含ApacheCommonsJAR文件引起的;我还没有确定是哪一个导致了问题,但在从项目中删除以下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.jar,删除它会阻止错误出现。

为什么不直接阅读错误消息?答案就在那里!事实上,我的配置很好,我已经收集了所有必要的库,但例外情况表明并非如此:)请重新阅读。我遵循了教程,并包含了所有必要的库。可能是库的问题,但我无法解决。您是否按照错误消息中的建议添加了条目?