Found the solution.
My Wrapper has to implement DelegatedFacesServlet.

-----Original Message-----
From: Michael Heinen [mailto:[email protected]] 
Sent: Dienstag, 8. Dezember 2009 09:45
To: MyFaces Discussion
Subject: RE: update from 1.1.6 to 1.2.8 -> IllegalStateException: No Factories 
configured for this Application

Thanks Jakob.

Now I see following WARN message:
[2009-12-08 09:31:50,287] main [ WARN] [] webapp.AbstractFacesInitializer 
initFaces: No mappings of FacesServlet found. Abort initializing MyFaces.

I specified a Wrapper around the FacesServlet for better exception handling.
This worked well with myFaces 1.1.6

  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>foo.servlets.FacesServletWrapper</servlet-class>
  <servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

public class FacesServletWrapper extends HttpServlet {
  private FacesServlet delegate;
  …

 public void service(ServletRequest request, ServletResponse response) throws 
ServletException, IOException {
    try {
      this.delegate.service(request, response);
    }
    catch (Throwable throwable) {
…

Isn’t this supported anymore?
How Do I use this pattern with JSF 1.2?

Michael

From: [email protected] [mailto:[email protected]] On Behalf Of 
Jakob Korherr
Sent: Montag, 7. Dezember 2009 18:21
To: Michael Heinen
Cc: MyFaces Discussion
Subject: Re: update from 1.1.6 to 1.2.8 -> IllegalStateException: No Factories 
configured for this Application

Hi Michael,

Looking at the following lines, the StartupServletContextListener wants to tell 
you something, but you are not listening:

log4j:WARN No appenders could be found for logger 
(org.apache.myfaces.webapp.StartupServletContextListener).
log4j:WARN Please initialize the log4j system properly.

The factories for MyFaces are configured in the StartupServletContextListener, 
so something must went wrong in its contextInitialized() method.

Please configure a logger for StartupServletContextListener and post the output 
to the mailing list for more information about the problem!

Regards,

Jakob Korherr

2009/12/7 Michael Heinen 
<[email protected]<mailto:[email protected]>>
Hi,

I tried to update my webApp  from MyFaces 1.1.6, Tomahawk 1.1.7 and RichFaces 
3.1.5 to JSF 1.2 compliant version.

Now the app does not start anymore and I get following exception on startup:

INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
07.12.2009 17:58:49 org.apache.catalina.core.StandardContext 
addApplicationListener
INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is 
already configured for this context. The duplicate definition has been ignored.
log4j:WARN No appenders could be found for logger 
(org.apache.myfaces.webapp.StartupServletContextListener).
log4j:WARN Please initialize the log4j system properly.
07.12.2009 17:58:50 org.apache.catalina.core.ApplicationContext log
SCHWERWIEGEND: StandardWrapper.Throwable
java.lang.IllegalStateException: No Factories configured for this Application. 
This happens if the faces-initialization does not work at all - make sure that 
you properly include all configuration settings necessary for a basic faces 
application and that all the necessary libs are included. Also check the 
logging output of your web application and your container for any exceptions!
If you did that and find nothing, the mistake might be due to the fact that you 
use some special web-containers which do not support registering 
context-listeners via TLD files and a context listener is not setup in your 
web.xml.
A typical config looks like this;
<listener>
 
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

               at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:106)
               at javax.faces.webapp.FacesServlet.init(FacesServlet.java:132)
               at 
com.recommind.litigation.client.web.servlets.FacesServletWrapper.init(FacesServletWrapper.java:73)
               at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
               at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
               at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
               at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
               at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
               at 
org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
               at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
               at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
               at 
org.apache.catalina.core.StandardService.start(StandardService.java:516)
               at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
               at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
               at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
               at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
               at java.lang.reflect.Method.invoke(Method.java:597)
               at 
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
               at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
07.12.2009 17:58:50 org.apache.catalina.core.StandardContext loadOnStartup
SCHWERWIEGEND: Servlet /foo threw load() exception


What I did:
1) Updated myFaces jars from 1.1.6 to 1.2.8 (api and impl)
2) updated tomahawk 1.1.7 to tomahawk12-1.1.9
3) removed tomahawk sandbox 1.1.7
4) updated richfaces from 3.1.5 to 3.3.2 (api, impl and ui)
5) updated jstl-1.1.0.jar to jstl-1.2.jar and removed standard.jar
6) deleted work folder of the webApp

I did not change web.xml or faces-config. Tomcat version is 6.0.18.

Any ideas where to look now?
Michael

Reply via email to