When creating multiple faces config files, it is correct to have the faces-config.xml outside of WEB-INF? The JSF spec does not seem to be very clear about this (Section 10.
As mentioned in David's answer, it's not recommended to put the config files outside of the WEB-INF directory. However, if you're looking for ways to organise your project, you might try creating a new subdirectory under WEB-INF.
For example, when I'm dealing with lots of faces-config files, I'll create a directory /WEB-INF/config
and put the faces-config files in there.
It is possible, but not recommended. The reason you put configuration files under WEB-INF is that the server knows not to serve these files - you have your code, database configuration and other sensitive stuff there.
You cannot use "/WebContent/WEB-INF/faces-config2.xml" - AFAIK "WebContent" is eclipse specific. have the config files names to be absolute inside the WAR. It means that they will always begin with "/WEB-INF/".
If you are referencing them from the web.xml, then the file needs to be in the war at runtime. There are other ways that the container can discover faces-config.xml resources.
10.4.2 At application startup time, before any requests are processed, the JSF implementation must process zero or more application configuration resources, located according to the following algorithm:
Search for all resources named “META-INF/faces-config.xml” in the ServletContext resource paths for this web application, and load each as a JSF configuration resource (in reverse order of the order in which they are returned by getResources() on the current Thread’s ContextClassLoader).
Check for the existence of a context initialization parameter named javax.faces.CONFIG_FILES. If it exists, treat it as a comma-delimited list of context relative resource paths (starting with a “/”), and load each of the specfied resources.
Check for the existence of a web application configuration resource named “/WEBINF/ faces-config.xml”, and load it if the resource exists.