我改变了构建应用程序的方式。它是由maven之前建造的,我把它改成了ANT。
更改后,我开始收到以下错误:
java.lang.IllegalStateException:没有为此应用程序配置的工厂。 如果面部初始化根本不起作用,则会发生这种情况 - 请确保您 正确包含基本面应用程序所需的所有配置设置 并且包含了所有必要的库。 还要检查Web应用程序和容器的日志记录输出 任何例外!
如果你这样做并且一无所获,那么错误可能是由于您使用了一些特殊的Web容器,这些容器不支持通过TLD文件注册上下文侦听器,并且您的web.xml中未设置上下文侦听器
典型配置如下所示:
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
javax.faces.FactoryFinder._getFactory(FactoryFinder.java:246)
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:200)
javax.faces.webapp.FacesServlet.init(FacesServlet.java:112)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
java.lang.Thread.run(Thread.java:662)
web.xml没有以下内容:
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
但是由于应用程序在没有它的情况下工作,我认为这是另一个问题。我在谷歌中查找了这个问题,其中大多数人认为这可能是因为Tomcat jar(servlet-api.jar
,el-api.jar
,jsp-api.jar
)的兼容性问题。我无法移除el-api.jar,因为应用程序正在使用它。
这似乎是一些依赖/库问题。