On 26 August 2012 23:05, Konstantin Kolinko <knst.koli...@gmail.com> wrote: > 2012/8/27 Ivan Polak <ivan.po...@f4s.sk>: >> I have found, where is the problem. >> >> problem is in StandardContextValve.java in >> >> @Override >> public final void invoke(Request request, Response response) >> throws IOException, ServletException { >> >> .... >> >> // Select the Wrapper to be used for this Request >> Wrapper wrapper = request.getWrapper(); >> if (wrapper == null || wrapper.isUnavailable()) { >> response.sendError(HttpServletResponse.SC_NOT_FOUND); >> return; >> } >> ..... >> >> if request is : http://localhost:8080/app/index.html (direct link to >> Spring MVC controller), object wrapper is not null, >> >> and if request is : http://localhost:8080/app/invitations/ (served by >> UrlRewrite filter), object wrapper is NULL! >> >> in CoyoteAdapter.java on line 649: >> >> request.setWrapper((Wrapper) request.getMappingData().wrapper); >> >> is set NULL. >> > > Can you stop top-posting? > http://en.wikipedia.org/wiki/Posting_style#Choosing_the_proper_posting_style > > What is your list of welcome files? > > How a wrapper can be null? > 1) For a directory path like yours, > the welcome files come into play and the servlet that serves them is > selected as the wrapper. > 2) There is always DefaultServlet (servlet mapped to "/") that is > selected when nothing else matches the request. > > When your breakpoint is on "if (wrapper == null || > wrapper.isUnavailable()) {" line, > what is the value of the local variable "requestPathMB" ? > > >> request.setWrapper((Wrapper) request.getMappingData().wrapper); > > Mapping is performed in > org.apache.tomcat.util.http.mapper.Mapper#map(..) (there are two > public map() methods) > > Best regards, > Konstantin Kolinko > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org >
Hi, 1. local variable requestPathMB = null (in Tomcat 7.0.14 requestPathMB = "/invitations") 2. <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> 3. As I wrote on the last mail, the problem is in StandardContextValve.java in method: public final void invoke(Request request, Response response) throws IOException, ServletException { ... Wrapper wrapper = request.getWrapper(); ... in Mapper class on line 988 // Rule 7 -- Default servlet if (mappingData.wrapper == null && !checkJspWelcomeFiles) { if (contextVersion.defaultWrapper != null) { contextVersion.defaultWrapper is NULL. in Tomcat 7.0.14 (where everything is OK) is not null. in Mapper.java, on line 708, method: private final void internalMap(CharChunk host, CharChunk uri, String version, MappingData mappingData) throws Exception { on line 725: contexts = hosts[pos].contextList.contexts; there are 2 contexts: 1. [0]:name="", versions.MapperContextVersion.defaultWrapper not null 2. [1]:name="app", versions.MapperContextVersion.defaultWrapper is null [in Tomcat 7.0.14, there are 2 contexts, too, but all have defaultWrapper not null] variable pos=1, context = contexts[pos]; selected context has defaultWrapper null, variable contextVersion.defaultWrapper is null. Ivan --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org