My web.xml contains the following fragment: <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <jsp-config> <jsp-property-group> <url-pattern>/notwelcome/*</url-pattern> </jsp-property-group> </jsp-config> The URL's '<contextRoot>/notwelcome/' and '<contextRoot>/notwelcome' both do not deliver the file 'index.html' that is located in the directory /notwelcome. Instead they result in a 404. If I remove the jsp-property-group, the welcome file is delivered. I will attach a test war to demonstrate this behavior.
Created attachment 10787 [details] Demonstrates described behavior.
I think we are not going to fix that.
I can conform this: the JSP servlet (which will handle all /notwelcome/* URLs) will not handle welcome files.
That is not according to the JSP specification. Nowhere in the spec it is stated that welcome files suddenly should not work any longer if they happen to be inside a jsp-property-group. Specifying a jsp-property-group with url-pattern '/*' now effectively disables all welcome files in the application. An example from the JSP spec (1-90): <jsp-property-group> <url-pattern>/ja/*</url-pattern> <page-encoding>Shift_JIS</page-encoding> </jsp-property-group> The Japanese target audience would probably not be very happy with the fact that any welcome files below '/ja/*' stopped functioning. I'm reopening this bug.
Developers know how to reopen bugs if somehow I'm wrong. Please don't waste my time and yours for now.
I'm working on a fix - stay tuned.
I found another problem with respect to jsp-property-groups and url-mappings. See bug 27704.
Fixed (I'll let the community decide if they want to go with this fix). Notice that in your example, /notwelcome/index.html will be interpreted as a JSP, as it matches the url-pattern of the jsp-property-group.