This is my web.xml :
<servlet-mapping>
<servlet-name>Faces Servlet</servlet>
<url-pattern>/*</url-pattern>
</servlet-mapping>
When I navigate to:
http://localhost:8080/LearningRoot/index.xhtml
I can see the page just fine, however when I navigate to:
http://localhost:8080/LearningRoot/
I get the error:
An Error Occurred:
The FacesServlet cannot have a url-pattern of /*. Please define a different url-pattern.
But why?
And this is my welcome file:
<welcome-file-list>
<welcome-file>/index.xhtml</welcome-file>
</welcome-file-list>
Because that would mean Everything that ever hits that context-root will be handled by FacesServlet, a requirement that FacesServlet already knows it couldn't possibly fulfill (It obviously doesn't make sense).
To achieve the mapping you intend, use a .xhtml
mapping on FaceServlet
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>