On 04/10/18 00:16, Daniel Becroft wrote:
> Hi,
> 
> We are setting up Tomcat 8 to use a CGI program (.exe, proprietary) to
> generate and return various JSON responses. This all works fine when the
> response is a HTTP 200. But, when an HTTP error is returned (HTTP 4xx),
> Tomcat is generating the HTML page instead.
> 
> We have the same setup working under IIS, and we had to configure the
> following option there to stop IIS doing the same thing:
> 
> <httpErrors existingResponse="Passthrough">
> 
> Is there an existing option somewhere in Tomcat that will do the same thing
> (ie keep the CGI response intact even if it's a HTTP error)? I can't seem
> to find one.

No, but I think you can work-around it. If the response has been
committed (i.e. written to the network), Tomcat can't replace the error
page. Try adding a filter that calls ServletResponse.flushBuffer()
immediately after the CGI servlet has finished.

Something like (untested):

public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain chain)
                     throws IOException, ServletException {
    chain.doFilter(request,response);
    response.flushBuffer();
}



> ---
> Daniel Becroft
> 


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

Reply via email to