0

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:

enter image description here

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

enter image description here

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:

enter image description here

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?

gaffcz
  • 3,469
  • 14
  • 68
  • 108

1 Answers1

1

Add this to your web.xml to explicitly register the listener which is supposed to configure the JSF factories.

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

Another possible solution is to remove the <load-on-startup> from the FacesServlet, 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.ConfigureListener appears 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 NoClassDefFoundError on org.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.

Community
  • 1
  • 1
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
  • Thank you Balusc, but now it says: `[Winstone 2011/12/09 16:29:01] - Error instantiating listener class: com.sun.faces.config.ConfigureListener`....:/ – gaffcz Dec 09 '11 at 15:29
  • What's the root cause then? Are you using Mojarra or MyFaces? I somehow assumed Mojarra... – BalusC Dec 09 '11 at 15:33
  • OK, tell about the root cause. This message is just an informal message which tells that **an exception** has occurred during creating the listener. You need to lookup this exception and tell about it. By the way, how about removing the ``? In *theory* this might work. – BalusC Dec 09 '11 at 15:36
  • I do not know, whenever I try to start xhtml which includes JSF. I'm even not able to deploy YOURS usingDatatables.war example. The same problem ... First page is ok, but if I choose next page with JSF, the problem is happening – gaffcz Dec 09 '11 at 15:40
  • If I remove it, everything is fine UNTIL starting of first page with JSF :) – gaffcz Dec 09 '11 at 15:41
  • Well.. Blame Winstone :/ I have by the way found this bug fix report: http://code.google.com/p/winstone/source/browse/trunk/winstone/DONE.txt?r=102 It seems that the suppressing of the exception during instantiation of the listener is been fixed in a newer Winstone version 1.0.0. You should then get the real exception in the logs. – BalusC Dec 09 '11 at 15:44
  • Thank you, I'll wait for newest version :) In fact I don't need it now, but it is required in school :) – gaffcz Dec 09 '11 at 15:48
  • http://code.google.com/p/winstone/downloads/detail?name=winstone-1.0.0-SNAPSHOT.jar The project itself however seems to be dead. I'd rather choose another, more decent server. – BalusC Dec 09 '11 at 16:06