2011/10/17 Nathan Potter <npot...@opendap.org>:
>
>
> Greetings,
>
> I am new to this list and I apologize in advance if this has been covered
> (although searching the archives did not lead me to a related thread):
>
> In my web application I need to utilize the JSP servlet, but I need to use a
> different servlet mapping:
>
>    <servlet-mapping>
>        <servlet-name>jsp</servlet-name>
>        <url-pattern>/jsp/*</url-pattern>
>    </servlet-mapping>
>
>
> This mapping works great, but I have noticed an odd thing:
>
> - If I request a URL that references an existing JSP it works.
>    http://localhost:8080/test/jsp/index.jsp
>
> - If I request a URL that references a file that does not exist I get a 404
> error, as expected.
>    http://localhost:8080/test/jsp/doesnotexist
>
>
> - If I request a URL (with a trailing "/" character) that references an
> existing directory within the the JSP servlet's purview. I get a 404 error
> (which seems reasonable).
>    http://localhost:8080/test/jsp/foo
>
> - BUT, If I request a URL (without a trailing slash) that references an
> existing directory within the the JSP servlet's purview, I get an HTTP
> status 500 (Internal Server Error).
>    http://localhost:8080/test/jsp/foo
>
> I think this is incorrect behavior.
>
> When I do the same experiment with the default servlet I get an empty
> directory, but no error.
>
> I looked at the Tomcat code referenced by the stack trace:
> org.apache.jasper.JasperException: File "/jsp/foo" not found
>
>  org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
>
>  org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
>
>  org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
>        org.apache.jasper.compiler.JspUtil.getInputStream(JspUtil.java:851)
>
>  org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:108)
>
>  org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:348)
>
>  org.apache.jasper.compiler.ParserController.doParse(ParserController.java:207)
>
>  org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:120)
>        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:180)
>        org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
>        org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
>        org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
>
>  org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
>
>  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
>
>  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
>        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> And I can see that in JspServlet in lines 312 - 316:
>        try {
>            wrapper.service(request, response, precompile);
>        } catch (FileNotFoundException fnfe) {
>            handleMissingResource(request, response, jspUri);
>        }
> The call is being serviced. Unfortunately when this problem occurs a
> "JasperException" is throw, not a FileNotFoundException and the
> handleMissingResource() path way is skipped....
>
> Any thoughts? It strikes me that this situation is one that can easily be
> incurred by a type in the URL and so I don't that that an HTTP staus of 500
> should be returned in this situation.
>

What exactly x.y.z Tomcat version is that?

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to