[seam-issues] [JBoss JIRA] Commented: (SEAMFACES-163) FacesServletInitializer interferes with FacesInitializer

Brian Leathem (JIRA) jira-events at lists.jboss.org
Tue May 17 00:09:01 EDT 2011


    [ https://issues.jboss.org/browse/SEAMFACES-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12602468#comment-12602468 ] 

Brian Leathem commented on SEAMFACES-163:
-----------------------------------------

Thanks for providing the analysis!

I update the related GLassfish issue with this information:
http://java.net/jira/browse/GLASSFISH-16061

> FacesServletInitializer interferes with FacesInitializer
> --------------------------------------------------------
>
>                 Key: SEAMFACES-163
>                 URL: https://issues.jboss.org/browse/SEAMFACES-163
>             Project: Seam Faces
>          Issue Type: Bug
>          Components: Configuration API
>    Affects Versions: 3.0.1
>         Environment: Glassfish 3.1. Mojarra 2.1.1, Weld 1.1.1, Seam-Faces 3.0.1
>            Reporter: Bryn Cooke
>
> I have a basic 1 page JSF app on glassfish with seam-faces.
> Sometimes I am getting java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> After some digging I think the problem is the following:
> org.jboss.seam.faces.config.FacesServletInitializer and com.sun.faces.config.FacesInitializer both have logic that tries to register the faces servlet if one isn't already registered.
> Glassfish seems to execute context listeners in a random order. Whichever listener is run first will perform faces initialization (they both check to see if a faces servlet has been 
> configured). 
> com.sun.faces.config.FacesInitializer has the following code, which seems to be required to set up faces correctly.
>             // The following line is temporary until we can solve an ordering
>             // issue in V3.  Right now the JSP container looks for a mapping
>             // of the FacesServlet in the web.xml.  If it's not present, then
>             // it assumes that the application isn't a faces application.  In this
>             // case the JSP container will not register the ConfigureListener
>             // definition from our TLD nor will it parse cause or JSP TLDs to
>             // be parsed.
>             servletContext.addListener(com.sun.faces.config.ConfigureListener.class);
> This bug is not deterministic due to the random ordering of listeners by Glassfish.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list