I'm not able to publish JSF2 application on Winstone server.
Server is configured fine and when I remove
<load-on-startup>1</load-on-startup>
from web.xml, it starts normally:

But when I try to start indew.xhtml, server reports:

Part of my web.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>
Update: I've tried winstone 1.0.0.jar and it reports this:

But I have slf4j-api-1.6.4.jar and slf4j-log4j12-1.6.4.jar in my WEB-INF\lib folder...
Where should be a problem?
Add this to your
web.xmlto explicitly register the listener which is supposed to configure the JSF factories.Another possible solution is to remove the
<load-on-startup>from theFacesServlet, but I have never used Winstone so I can't guarantee if that would work on that server.This workaround is usually not mandatory in decent servers, but in poor servers it is. For more background information, see also could not find Factory: javax.faces.context.FacesContextFactory.
Update as per the comments, after adding the listener the exception disappeared, but now a
Error instantiating listener class: com.sun.faces.config.ConfigureListenerappears without any stacktrace. The swallowing of the stacktrace seems to be a Winstone bug which was fixed in 1.0.0. Give it a try, it should now show the real cause of the problem.Update 2 as per the question update, the real cause seems to be a
NoClassDefFoundErroronorg.slf4j.loggerFactory. This is however not used by Mojarra in any way. The stacktrace also indicates that this is happening before loading any listeners. In other words, this is likely a different problem, releated to Winstone. Apparently Winstone itself needs that library. Add it to the runtime classpath of Winstone instead of the/WEB-INF/lib.