Description
A ClassNotFoundException can occur during initialization when a servlet mapping is defined which cannot be loaded by MyFaces. We should update WebXml.getFacesServletMappings() to not throw an exception when it can't load a class.
javax.faces.FacesException: java.lang.ClassNotFoundException: <classname>
at org.apache.myfaces.shared.util.ClassUtils.simpleClassForName(ClassUtils.java:239)
at org.apache.myfaces.shared.util.ClassUtils.simpleClassForName(ClassUtils.java:215)
at org.apache.myfaces.shared_impl.webapp.webxml.WebXml.getFacesServletMappings(WebXml.java:136)
at org.apache.myfaces.spi.impl.DefaultWebConfigProvider.getFacesServletMappings(DefaultWebConfigProvider.java:46)
at org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:161)
This is related to the fix made in MYFACES-3629
Any servlet defined in the web.xml that can't be loaded by at the time of JSF initialization will cause this problem. As an example, this definition will cause MyFaces initialization to fail:
<servlet>
<servlet-name>unloadable</servlet-name>
<servlet-class>does.not.Exist</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>