Jsf Winstone:找不到工厂:javax.faces.context.FacesContextFactory

Jsf Winstone:找不到工厂:javax.faces.context.FacesContextFactory,jsf,winstone,Jsf,Winstone,我无法在Winstone服务器上发布JSF2应用程序 服务器配置良好,当我删除 <load-on-startup>1</load-on-startup> 1 从web.xml开始,它正常启动: 但当我尝试启动indew.xhtml时,服务器报告: myweb.xml的一部分: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLS

我无法在Winstone服务器上发布JSF2应用程序

服务器配置良好,当我删除

<load-on-startup>1</load-on-startup>
1
从web.xml开始,它正常启动:

但当我尝试启动indew.xhtml时,服务器报告:

myweb.xml的一部分:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         id="WebApp_ID" version="2.5">
  <display-name>PIA</display-name>
  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

  <context-param>
    <description>State saving method: 'client' or 'server'.</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>
</web-app>

巴基斯坦国际航空公司
60
index.xhtml
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
*.xhtml
状态保存方法:“客户端”或“服务器”。
javax.faces.STATE_保存方法
客户
javax.servlet.jsp.jstl.fmt.localizationContext
资源.应用
javax.faces.DEFAULT_后缀
.xhtml

更新:我尝试了
winstone 1.0.0.jar
,它报告了以下内容:

但是我的WEB-INF\lib文件夹中有
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jar
。。。
哪里应该有问题?

将此添加到
web.xml
以显式注册侦听器,该侦听器应该配置JSF工厂

<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

com.sun.faces.config.ConfigureListener
另一种可能的解决方案是从
FacesServlet
中删除
,但我从未使用过Winstone,因此我无法保证这是否适用于该服务器

这种变通方法在性能良好的服务器中通常不是强制性的,但在性能较差的服务器中却是强制性的。有关更多背景信息,请参见


根据注释更新添加侦听器后,异常消失,但现在实例化侦听器类时出现一个
错误:com.sun.faces.config.ConfigureListener
,没有任何堆栈跟踪。stacktrace的吞咽似乎是一只温斯顿虫子,它在里面。试一试,它现在应该显示问题的真正原因



更新2根据问题更新,真正的原因似乎是
org.slf4j.loggerFactory
上的
NoClassDefFoundError
。然而,Mojarra并未以任何方式使用此功能。stacktrace还指示这是在加载任何侦听器之前发生的。换句话说,这可能是一个不同的问题,与温斯顿有关。显然温斯顿自己也需要那个图书馆。将它添加到Winstone的运行时类路径,而不是
/WEB-INF/lib

谢谢你,Balusc,但是现在它说:
[Winstone 2011/12/09 16:29:01]-实例化侦听器类时出错:com.sun.faces.config.ConfigureListener
。:/那根本原因是什么?你用的是Mojarra还是MyFaces?我想当然地认为莫哈拉…好吧,告诉我根本原因。此消息只是一条非正式消息,告诉您在创建侦听器期间发生了异常。您需要查找此异常并说明它。顺便问一下,删除
怎么样?理论上,这可能是可行的。我不知道,每当我尝试启动包含JSF的xhtml时。我甚至无法使用DataTables.war示例部署您的。同样的问题。。。第一个页面是可以的,但是如果我使用JSF选择下一个页面,问题就出现了。如果我删除它,在使用JSF开始第一个页面之前,一切都很好:)