On 26 August 2012 23:05, Konstantin Kolinko <[email protected]> wrote:
> 2012/8/27 Ivan Polak <[email protected]>:
>> 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: [email protected]
> For additional commands, e-mail: [email protected]
>
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: [email protected]
For additional commands, e-mail: [email protected]