> From: Nathan Potter [mailto:n...@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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to