You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Nathan Potter <nd...@opendap.org> on 2009/02/01 00:33:32 UTC

Re: Tomcat returns HTTP status of 200 when HttpServletResponse.sendError() called.


Chuck,

I got the same error with your version. Which got me thinking. So  
removed all of my webapp files and tried a again with a fresh war file  
and now they both work.

Thanks!


Nathan


On Jan 29, 2009, at 8:27 PM, Caldarale, Charles R wrote:

>> From: Nathan Potter [mailto:ndp@opendap.org]
>> Subject: Re: Tomcat returns HTTP status of 200 when
>> HttpServletResponse.sendError() called.
>
> Sorry for not responding earlier, things have been a little hectic  
> this week.
>
>> I just got try it today and here is what happened:
>
> I just tried the same thing, with no problems.
>
>> I made this class:
>
> I don't see a package clause in your code, nor are the imports  
> shown.  Here's the entire code I used, including the poor man's  
> logger, System.out:
>
> package mypackage;
>
> import javax.servlet.http.HttpServletRequest;
> import org.apache.catalina.Globals;
>
> public class StaticContentServlet extends  
> org.apache.catalina.servlets.DefaultServlet {
>  protected String getRelativePath(HttpServletRequest request) {
>    // Are we being processed by a RequestDispatcher.include()?
>    if (request.getAttribute(Globals.INCLUDE_REQUEST_URI_ATTR) !=  
> null) {
>      String result =  
> (String)request.getAttribute(Globals.INCLUDE_PATH_INFO_ATTR);
>      if (result == null) {
>        result =  
> (String)request.getAttribute(Globals.INCLUDE_SERVLET_PATH_ATTR);
>      }
>      if (result == null || result.equals("")) result = "/";
>      System.out.println("StaticContentServlet returning " + result);
>      return result;
>    }
>    // No, extract the desired path directly from the request.
>    String result = request.getPathInfo();
>    if (result == null) {
>      result = request.getServletPath();
>    } else {
>      result = request.getServletPath() + result;
>    }
>    if (result == null || result.equals("")) result = "/";
>    System.out.println("StaticContentServlet returning " + result);
>    return result;
>  }
> }
>
>> I added it to my web.xml file:
>
> Mine is almost the same, with the addition of a listings param:
>
> <servlet>
>  <servlet-name>docs</servlet-name>
>  <servlet-class>mypackage.StaticContentServlet</servlet-class>
>  <init-param>
>   <param-name>listings</param-name>
>   <param-value>true</param-value>
>  </init-param>
>  <load-on-startup>1</load-on-startup>
> </servlet>
>
> just so the /docs mapping would do something useful.  (The servlet  
> mappings are identical to yours.)
>
> Referencing the URLs:
>  http://localhost:8080/sample/docs
>  http://localhost:8080/sample/docs/test.txt
> got me this result in stdout:
>  StaticContentServlet returning /docs
>  StaticContentServlet returning /docs/test.txt
> and the expected directory listings and the text file contents in  
> the browser window.
>
> - Chuck
>
>
> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE  
> PROPRIETARY MATERIAL and is thus for use only by the intended  
> recipient. If you received this in error, please contact the sender  
> and delete the e-mail and its attachments from all computers.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>

= = =
Nathan Potter                        ndp at opendap.org
OPeNDAP, Inc.                        541.752.1852



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