dev@glassfish.java.net

Re: error-page encoding problem

From: Jan Luehe <Jan.Luehe_at_Sun.COM>
Date: Wed, 06 Dec 2006 14:55:18 -0800

Hi Dmitry,

Dmitry Mozheyko wrote On 12/06/06 02:54,:

>Hi all!
>I use glassfish-v2-b27 and i need to custom error page
>web.xml:
>
>...
> <error-page>
> <exception-type>java.lang.Throwable</exception-type>
> <location>/error.jsp</location>
> </error-page>
> <error-page>
> <error-code>403</error-code>
> <location>/error403.jsp</location>
> </error-page>
> <error-page>
> <error-code>404</error-code>
> <location>/error404.jsp</location>
> </error-page>
>...
>
>
>
>Both error403.jsp and error404.jsp pages correctly showing UTF-8 symbols, but error.jsp:
>
><%_at_page contentType="text/html"%>
><%_at_page pageEncoding="UTF-8"%>
><jsp:include page="jspf/header.jsp" />
><b>Ошибка:</b><br />
><%=((Throwable)request.getAttribute("javax.servlet.error.exception")).toString()%><br />
><button onclick="goback()">Назад</button>
><jsp:include page="jspf/footer.jsp" />
>
>
>
>Show '?' signes instead russian symbols.
>
>

I've extended our unit test to also cover the scenario you've described,
and I'm unable
to reproduce the issue.

What is the value of the Content-Type header of your response?

Could it be that you have already written output to the response writer
*before*
the Throwable is raised and the request is forwarded to "/error.jsp"?

If so, it will be impossible for "/error.jsp" to change the response
encoding,
which is why you are seeing the '?' in the response.

An error page is able to set the response encoding only if no output has
been
written to the response before the error page is invoked.

Hope this helps.

Jan

>How to fix it?
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>
>
>