On 22 March 2016 14:46:31 GMT+00:00, Christopher Schultz <ch...@christopherschultz.net> wrote: >Mark, > >On 3/17/16 1:28 PM, Mark Thomas wrote: >> On 17 March 2016 16:06:10 GMT+00:00, Paul Benedict ><pbened...@apache.org> wrote: >>> This question is not about Tomcat per se, but it does affect it. >It's >>> really about the EE specification in regards to any servlet >container. >>> I'd >>> like to get professional opinions on this part of the specification. >>> >>> I am quoting from EE 5.0 (see link below), section 8.3.1, paragraph >3c: >>> >>> The Deployer must... "Assign a context root for each web module >>> included in >>> the Java EE application. The context root is a relative name in the >web >>> namespace for the application. Each web module must be given a >distinct >>> and >>> non-overlapping name for its context root." >>> >>> So given this scenario: >>> /context/something <-- context is /context >>> /context/something/somethingelse <-- context is /context/something >>> >>> The specification puts no limitations on the context root character >set >>> (so >>> it can include a slash). With that said, would you consider these >>> "overlapping" contexts? I noticed one application server supporting >>> this >>> paradigm without issue, but it seems like a violation of the >>> specification. >>> Please advise. >>> >>> Also, since Tomcat doesn't support "applications" (EAR?), how should >>> the >>> specification be interpreted in the absence of that artifact? >>> >>> [1] >>> http://download.oracle.com/otndocs/jcp/javaee-5.0-fr-eval-oth-JSpec/ >>> >>> Cheers, >>> Paul >> >> That requirement makes no sense as I understand it. You always have >overlapping context paths because of the ROOT context. >> >> I think this is one for the EG to clarify what they meant. >> >> It is also worth noting that the servlet spec explicitly states thst >> requests are matched against the longest matching context path. > >How can Tomcat tell the difference between requests to: > >/webappA/someresource/foo (which does exist in webappA path=/webappA) >and >/webappA/someresource/foo (which does not exist in webappB >path="/webappA/someresource) > >In the above case, Tomcat should choose the second, because >/webappA/someresource matches webappB's context path, which is longer >than webappA's context path, right?
Correct. That should result in a 404. We've use this trick to return something useful if a user requests the docs Web app when it isn't installed. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org