You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Vladislav Pernin <vl...@openwide.fr> on 2006/02/01 10:32:12 UTC
Re: Struts-1.1 Tiles exception error page
I just found in the 1.2.4 release note that this has been resolved. So
I'm going to take a look at 1.2.4 migration.
Vladislav Pernin
Vladislav Pernin wrote:
> Hi all,
>
> I'm working in an Struts-1.1 tiles environment and I need to be able
> to redirect user on a JSP error page when an errors occurs. I also
> need to send an email, that can be done from the JSP error page or
> from an exception handler.
>
> The global-exceptions declared in the struts-config.xml "catch" the
> exception that occur in the struts action only.
>
> I also need to catch exception in the JSP, so I try to set an
> error-page in the web.xml, the exception thrown from the
> TableauBord.jsp is not caugth and an ugly "A ServletException in
> /jsp/TableauBord.jsp ..." is displayed instead of the content of the
> TableauBord.jsp inserted by <tiles:insert attribute="corps"/> in
> Template.jsp ; the JSP error page error.jsp is not called.
>
> So I try to add a <%@ page errorPage="/jsp/error.jsp" %> in the pages
> Template.jsp and TableauBord.jsp, I got a different behaviour, the
> "ServletException ..." message went out but the JSP error page has
> still not been called. After some testing, I realised that I could put
> any string in the <%@ page errorPage="sdqsdsqdqsdsqd" %>, no change.
>
> I try to use a standard JSP page, I mean without tiles templating, and
> my JSP error page is called with both solutions (error-page in web.xml
> and directive errorPage in JSP).
>
> Maybe the response is commited before the exception is thrown ?
>
> The web gave me some directions, I tried all of them without any
> success. So if you guys have an idea, it would be great.
>
> Regards,
> Vladislav Pernin
>
> ------------------------------------------------------------------------------_
>
> Template.jsp:_
>
> <%@ page contentType="text/html;charset=utf-8" %>
> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
> <html>
> <head>
> <html:base />
> <tiles:importAttribute name="titrePage"/>
> ...
>
> <body >
> <div class="top"><tiles:insert attribute="imagesEntete"/></div>
> ...
> <tiles:insert attribute="corps"/>
> ...
>
> _TableauBord.jsp :
> _JSP page where the error occurs
>
>
> _titles-defs.xml :_
> <definition name=".MainLayout" path="/Template.jsp">
> <put name="titrePage" value="page.defaut.titre" />
> <put name="imagesEntete" value="/jsp/Entete.jsp" />
> <put name="corps" value="corps" />
> </definition>
> <definition name=".TableauBord" extends=".MainLayout">
> <put name="corps" value="/jsp/TableauBord.jsp"/>
> </definition>
>
>
> _struts-config.xml :_
> ...
> <global-exceptions>
> <exception key="page.error.key"
> type="java.lang.Exception"
> path="/jsp/error.jsp"
> handler="xxx.yyy.ExceptionHandler" />
> </global-exceptions>
> ...
>
> _web.xml :_
> <error-page>
> <exception-type>java.lang.Exception</exception-type>
> <location>/jsp/error.jsp</location>
> </error-page>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts-1.1 Tiles exception error page
Posted by Laurie Harper <la...@holoweb.net>.
Both will help. Figuring out what size buffer you need will be a process
of experimentation. The bottom line is that this is not a robust
solution unless you can be reasonably sure the size of each page will
not vary very much.
L.
Vladislav Pernin wrote:
> You mean <tiles:insert attribute="xxx" flush="false" /> or <%@ page
> autoFlush="false" ... buffer="64kb">, or both ?
>
> I do not really have an idea what could be a reasonable value for buffer.
>
> Vlad
>
>
> Laurie Harper a écrit :
>
>> Well, assuming the IllegalStateException is complaining about not
>> being able to forward after the response has been committed or
>> something similar, the problem is that (at least some of) the response
>> has already been sent when the error occurs.
>>
>> You may be able to work around that by (a) making sure you use
>> flush=false everywhere and (b) increasing the size of the response
>> buffer.
>>
>> L.
>>
>> Vladislav Pernin wrote:
>>
>>> I try to migrate to Struts 1.2.8, the "ServletException ..." message
>>> is not displayed any more.
>>>
>>> Problem is that if I use the error-page of the web.xml, I got the
>>> following exception :
>>> 2006-02-01 18:58:27 ErrorDispatcherValve[localhost]: Exception
>>> Processing ErrorPage[exceptionType=java.lang.Throwable,
>>> location=/error.jsp]
>>> java.lang.IllegalStateException: Impossible de remettre ? z?ro apr?s
>>> que la r?ponse ait ?t? envoy?e
>>> at
>>> org.apache.catalina.connector.ResponseBase.reset(ResponseBase.java:742)
>>> at
>>> org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:765)
>>>
>>> at
>>> org.apache.catalina.connector.http.HttpResponseImpl.reset(HttpResponseImpl.java:156)
>>>
>>> at
>>> org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:326)
>>>
>>> at
>>> org.apache.catalina.valves.ErrorDispatcherValve.custom(ErrorDispatcherValve.java:364)
>>>
>>> at
>>> org.apache.catalina.valves.ErrorDispatcherValve.throwable(ErrorDispatcherValve.java:209)
>>>
>>> at
>>> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:126)
>>>
>>> at
>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>>>
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
>>>
>>> at
>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>>>
>>> at
>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:534)
>>>
>>> at
>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>>>
>>> at
>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>>>
>>> at
>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
>>>
>>> at
>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>>>
>>> at
>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>>>
>>> at
>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
>>> at
>>> org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:994)
>>>
>>> at
>>> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1105)
>>>
>>> at java.lang.Thread.run(Thread.java:534)
>>>
>>> If I use the <%@ page errorPage ..., the tiles bloc which fails is
>>> replaced by the content of error.jsp but not the user is not redirected.
>>>
>>> Any idea ?
>>>
>>> Vladislav Pernin
>>>
>>> Vladislav Pernin wrote:
>>>
>>>> I just found in the 1.2.4 release note that this has been resolved.
>>>> So I'm going to take a look at 1.2.4 migration.
>>>>
>>>> Vladislav Pernin
>>>>
>>>> Vladislav Pernin wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm working in an Struts-1.1 tiles environment and I need to be
>>>>> able to redirect user on a JSP error page when an errors occurs. I
>>>>> also need to send an email, that can be done from the JSP error
>>>>> page or from an exception handler.
>>>>>
>>>>> The global-exceptions declared in the struts-config.xml "catch" the
>>>>> exception that occur in the struts action only.
>>>>>
>>>>> I also need to catch exception in the JSP, so I try to set an
>>>>> error-page in the web.xml, the exception thrown from the
>>>>> TableauBord.jsp is not caugth and an ugly "A ServletException in
>>>>> /jsp/TableauBord.jsp ..." is displayed instead of the content of
>>>>> the TableauBord.jsp inserted by <tiles:insert attribute="corps"/>
>>>>> in Template.jsp ; the JSP error page error.jsp is not called.
>>>>>
>>>>> So I try to add a <%@ page errorPage="/jsp/error.jsp" %> in the
>>>>> pages Template.jsp and TableauBord.jsp, I got a different
>>>>> behaviour, the "ServletException ..." message went out but the JSP
>>>>> error page has still not been called. After some testing, I
>>>>> realised that I could put any string in the <%@ page
>>>>> errorPage="sdqsdsqdqsdsqd" %>, no change.
>>>>>
>>>>> I try to use a standard JSP page, I mean without tiles templating,
>>>>> and my JSP error page is called with both solutions (error-page in
>>>>> web.xml and directive errorPage in JSP).
>>>>>
>>>>> Maybe the response is commited before the exception is thrown ?
>>>>>
>>>>> The web gave me some directions, I tried all of them without any
>>>>> success. So if you guys have an idea, it would be great.
>>>>>
>>>>> Regards,
>>>>> Vladislav Pernin
>>>>>
>>>>> ------------------------------------------------------------------------------_
>>>>>
>>>>> Template.jsp:_
>>>>>
>>>>> <%@ page contentType="text/html;charset=utf-8" %>
>>>>> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
>>>>> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
>>>>> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
>>>>> <html>
>>>>> <head>
>>>>> <html:base />
>>>>> <tiles:importAttribute name="titrePage"/>
>>>>> ...
>>>>>
>>>>> <body >
>>>>> <div class="top"><tiles:insert attribute="imagesEntete"/></div>
>>>>> ...
>>>>> <tiles:insert attribute="corps"/>
>>>>> ...
>>>>>
>>>>> _TableauBord.jsp :
>>>>> _JSP page where the error occurs
>>>>> _titles-defs.xml :_
>>>>> <definition name=".MainLayout" path="/Template.jsp">
>>>>> <put name="titrePage" value="page.defaut.titre" />
>>>>> <put name="imagesEntete" value="/jsp/Entete.jsp" />
>>>>> <put name="corps" value="corps" />
>>>>> </definition>
>>>>> <definition name=".TableauBord" extends=".MainLayout">
>>>>> <put name="corps" value="/jsp/TableauBord.jsp"/>
>>>>> </definition>
>>>>>
>>>>>
>>>>> _struts-config.xml :_
>>>>> ...
>>>>> <global-exceptions>
>>>>> <exception key="page.error.key"
>>>>> type="java.lang.Exception"
>>>>> path="/jsp/error.jsp"
>>>>> handler="xxx.yyy.ExceptionHandler" />
>>>>> </global-exceptions>
>>>>> ...
>>>>>
>>>>> _web.xml :_
>>>>> <error-page>
>>>>> <exception-type>java.lang.Exception</exception-type>
>>>>> <location>/jsp/error.jsp</location>
>>>>> </error-page>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts-1.1 Tiles exception error page
Posted by Vladislav Pernin <vl...@openwide.fr>.
You mean <tiles:insert attribute="xxx" flush="false" /> or <%@ page
autoFlush="false" ... buffer="64kb">, or both ?
I do not really have an idea what could be a reasonable value for buffer.
Vlad
Laurie Harper a écrit :
> Well, assuming the IllegalStateException is complaining about not
> being able to forward after the response has been committed or
> something similar, the problem is that (at least some of) the response
> has already been sent when the error occurs.
>
> You may be able to work around that by (a) making sure you use
> flush=false everywhere and (b) increasing the size of the response
> buffer.
>
> L.
>
> Vladislav Pernin wrote:
>
>> I try to migrate to Struts 1.2.8, the "ServletException ..." message
>> is not displayed any more.
>>
>> Problem is that if I use the error-page of the web.xml, I got the
>> following exception :
>> 2006-02-01 18:58:27 ErrorDispatcherValve[localhost]: Exception
>> Processing ErrorPage[exceptionType=java.lang.Throwable,
>> location=/error.jsp]
>> java.lang.IllegalStateException: Impossible de remettre ? z?ro apr?s
>> que la r?ponse ait ?t? envoy?e
>> at
>> org.apache.catalina.connector.ResponseBase.reset(ResponseBase.java:742)
>> at
>> org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:765)
>>
>> at
>> org.apache.catalina.connector.http.HttpResponseImpl.reset(HttpResponseImpl.java:156)
>>
>> at
>> org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:326)
>>
>> at
>> org.apache.catalina.valves.ErrorDispatcherValve.custom(ErrorDispatcherValve.java:364)
>>
>> at
>> org.apache.catalina.valves.ErrorDispatcherValve.throwable(ErrorDispatcherValve.java:209)
>>
>> at
>> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:126)
>>
>> at
>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>>
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
>>
>> at
>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>>
>> at
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:534)
>>
>> at
>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>>
>> at
>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>>
>> at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
>>
>> at
>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>>
>> at
>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>>
>> at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
>> at
>> org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:994)
>>
>> at
>> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1105)
>>
>> at java.lang.Thread.run(Thread.java:534)
>>
>> If I use the <%@ page errorPage ..., the tiles bloc which fails is
>> replaced by the content of error.jsp but not the user is not redirected.
>>
>> Any idea ?
>>
>> Vladislav Pernin
>>
>> Vladislav Pernin wrote:
>>
>>> I just found in the 1.2.4 release note that this has been resolved.
>>> So I'm going to take a look at 1.2.4 migration.
>>>
>>> Vladislav Pernin
>>>
>>> Vladislav Pernin wrote:
>>>
>>>> Hi all,
>>>>
>>>> I'm working in an Struts-1.1 tiles environment and I need to be
>>>> able to redirect user on a JSP error page when an errors occurs. I
>>>> also need to send an email, that can be done from the JSP error
>>>> page or from an exception handler.
>>>>
>>>> The global-exceptions declared in the struts-config.xml "catch" the
>>>> exception that occur in the struts action only.
>>>>
>>>> I also need to catch exception in the JSP, so I try to set an
>>>> error-page in the web.xml, the exception thrown from the
>>>> TableauBord.jsp is not caugth and an ugly "A ServletException in
>>>> /jsp/TableauBord.jsp ..." is displayed instead of the content of
>>>> the TableauBord.jsp inserted by <tiles:insert attribute="corps"/>
>>>> in Template.jsp ; the JSP error page error.jsp is not called.
>>>>
>>>> So I try to add a <%@ page errorPage="/jsp/error.jsp" %> in the
>>>> pages Template.jsp and TableauBord.jsp, I got a different
>>>> behaviour, the "ServletException ..." message went out but the JSP
>>>> error page has still not been called. After some testing, I
>>>> realised that I could put any string in the <%@ page
>>>> errorPage="sdqsdsqdqsdsqd" %>, no change.
>>>>
>>>> I try to use a standard JSP page, I mean without tiles templating,
>>>> and my JSP error page is called with both solutions (error-page in
>>>> web.xml and directive errorPage in JSP).
>>>>
>>>> Maybe the response is commited before the exception is thrown ?
>>>>
>>>> The web gave me some directions, I tried all of them without any
>>>> success. So if you guys have an idea, it would be great.
>>>>
>>>> Regards,
>>>> Vladislav Pernin
>>>>
>>>> ------------------------------------------------------------------------------_
>>>>
>>>> Template.jsp:_
>>>>
>>>> <%@ page contentType="text/html;charset=utf-8" %>
>>>> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
>>>> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
>>>> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
>>>> <html>
>>>> <head>
>>>> <html:base />
>>>> <tiles:importAttribute name="titrePage"/>
>>>> ...
>>>>
>>>> <body >
>>>> <div class="top"><tiles:insert attribute="imagesEntete"/></div>
>>>> ...
>>>> <tiles:insert attribute="corps"/>
>>>> ...
>>>>
>>>> _TableauBord.jsp :
>>>> _JSP page where the error occurs
>>>> _titles-defs.xml :_
>>>> <definition name=".MainLayout" path="/Template.jsp">
>>>> <put name="titrePage" value="page.defaut.titre" />
>>>> <put name="imagesEntete" value="/jsp/Entete.jsp" />
>>>> <put name="corps" value="corps" />
>>>> </definition>
>>>> <definition name=".TableauBord" extends=".MainLayout">
>>>> <put name="corps" value="/jsp/TableauBord.jsp"/>
>>>> </definition>
>>>>
>>>>
>>>> _struts-config.xml :_
>>>> ...
>>>> <global-exceptions>
>>>> <exception key="page.error.key"
>>>> type="java.lang.Exception"
>>>> path="/jsp/error.jsp"
>>>> handler="xxx.yyy.ExceptionHandler" />
>>>> </global-exceptions>
>>>> ...
>>>>
>>>> _web.xml :_
>>>> <error-page>
>>>> <exception-type>java.lang.Exception</exception-type>
>>>> <location>/jsp/error.jsp</location>
>>>> </error-page>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts-1.1 Tiles exception error page
Posted by Laurie Harper <la...@holoweb.net>.
Well, assuming the IllegalStateException is complaining about not being
able to forward after the response has been committed or something
similar, the problem is that (at least some of) the response has already
been sent when the error occurs.
You may be able to work around that by (a) making sure you use
flush=false everywhere and (b) increasing the size of the response buffer.
L.
Vladislav Pernin wrote:
> I try to migrate to Struts 1.2.8, the "ServletException ..." message is
> not displayed any more.
>
> Problem is that if I use the error-page of the web.xml, I got the
> following exception :
> 2006-02-01 18:58:27 ErrorDispatcherValve[localhost]: Exception
> Processing ErrorPage[exceptionType=java.lang.Throwable,
> location=/error.jsp]
> java.lang.IllegalStateException: Impossible de remettre ? z?ro apr?s que
> la r?ponse ait ?t? envoy?e
> at
> org.apache.catalina.connector.ResponseBase.reset(ResponseBase.java:742)
> at
> org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:765)
>
> at
> org.apache.catalina.connector.http.HttpResponseImpl.reset(HttpResponseImpl.java:156)
>
> at
> org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:326)
>
> at
> org.apache.catalina.valves.ErrorDispatcherValve.custom(ErrorDispatcherValve.java:364)
>
> at
> org.apache.catalina.valves.ErrorDispatcherValve.throwable(ErrorDispatcherValve.java:209)
>
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:126)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:534)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
> at
> org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:994)
>
> at
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1105)
>
> at java.lang.Thread.run(Thread.java:534)
>
> If I use the <%@ page errorPage ..., the tiles bloc which fails is
> replaced by the content of error.jsp but not the user is not redirected.
>
> Any idea ?
>
> Vladislav Pernin
>
> Vladislav Pernin wrote:
>
>> I just found in the 1.2.4 release note that this has been resolved. So
>> I'm going to take a look at 1.2.4 migration.
>>
>> Vladislav Pernin
>>
>> Vladislav Pernin wrote:
>>
>>> Hi all,
>>>
>>> I'm working in an Struts-1.1 tiles environment and I need to be able
>>> to redirect user on a JSP error page when an errors occurs. I also
>>> need to send an email, that can be done from the JSP error page or
>>> from an exception handler.
>>>
>>> The global-exceptions declared in the struts-config.xml "catch" the
>>> exception that occur in the struts action only.
>>>
>>> I also need to catch exception in the JSP, so I try to set an
>>> error-page in the web.xml, the exception thrown from the
>>> TableauBord.jsp is not caugth and an ugly "A ServletException in
>>> /jsp/TableauBord.jsp ..." is displayed instead of the content of the
>>> TableauBord.jsp inserted by <tiles:insert attribute="corps"/> in
>>> Template.jsp ; the JSP error page error.jsp is not called.
>>>
>>> So I try to add a <%@ page errorPage="/jsp/error.jsp" %> in the pages
>>> Template.jsp and TableauBord.jsp, I got a different behaviour, the
>>> "ServletException ..." message went out but the JSP error page has
>>> still not been called. After some testing, I realised that I could
>>> put any string in the <%@ page errorPage="sdqsdsqdqsdsqd" %>, no change.
>>>
>>> I try to use a standard JSP page, I mean without tiles templating,
>>> and my JSP error page is called with both solutions (error-page in
>>> web.xml and directive errorPage in JSP).
>>>
>>> Maybe the response is commited before the exception is thrown ?
>>>
>>> The web gave me some directions, I tried all of them without any
>>> success. So if you guys have an idea, it would be great.
>>>
>>> Regards,
>>> Vladislav Pernin
>>>
>>> ------------------------------------------------------------------------------_
>>>
>>> Template.jsp:_
>>>
>>> <%@ page contentType="text/html;charset=utf-8" %>
>>> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
>>> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
>>> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
>>> <html>
>>> <head>
>>> <html:base />
>>> <tiles:importAttribute name="titrePage"/>
>>> ...
>>>
>>> <body >
>>> <div class="top"><tiles:insert attribute="imagesEntete"/></div>
>>> ...
>>> <tiles:insert attribute="corps"/>
>>> ...
>>>
>>> _TableauBord.jsp :
>>> _JSP page where the error occurs
>>> _titles-defs.xml :_
>>> <definition name=".MainLayout" path="/Template.jsp">
>>> <put name="titrePage" value="page.defaut.titre" />
>>> <put name="imagesEntete" value="/jsp/Entete.jsp" />
>>> <put name="corps" value="corps" />
>>> </definition>
>>> <definition name=".TableauBord" extends=".MainLayout">
>>> <put name="corps" value="/jsp/TableauBord.jsp"/>
>>> </definition>
>>>
>>>
>>> _struts-config.xml :_
>>> ...
>>> <global-exceptions>
>>> <exception key="page.error.key"
>>> type="java.lang.Exception"
>>> path="/jsp/error.jsp"
>>> handler="xxx.yyy.ExceptionHandler" />
>>> </global-exceptions>
>>> ...
>>>
>>> _web.xml :_
>>> <error-page>
>>> <exception-type>java.lang.Exception</exception-type>
>>> <location>/jsp/error.jsp</location>
>>> </error-page>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts-1.1 Tiles exception error page
Posted by Vladislav Pernin <vl...@openwide.fr>.
I try to migrate to Struts 1.2.8, the "ServletException ..." message is
not displayed any more.
Problem is that if I use the error-page of the web.xml, I got the
following exception :
2006-02-01 18:58:27 ErrorDispatcherValve[localhost]: Exception
Processing ErrorPage[exceptionType=java.lang.Throwable, location=/error.jsp]
java.lang.IllegalStateException: Impossible de remettre ? z?ro apr?s que
la r?ponse ait ?t? envoy?e
at
org.apache.catalina.connector.ResponseBase.reset(ResponseBase.java:742)
at
org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:765)
at
org.apache.catalina.connector.http.HttpResponseImpl.reset(HttpResponseImpl.java:156)
at
org.apache.catalina.connector.HttpResponseBase.reset(HttpResponseBase.java:326)
at
org.apache.catalina.valves.ErrorDispatcherValve.custom(ErrorDispatcherValve.java:364)
at
org.apache.catalina.valves.ErrorDispatcherValve.throwable(ErrorDispatcherValve.java:209)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:126)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:534)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:994)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1105)
at java.lang.Thread.run(Thread.java:534)
If I use the <%@ page errorPage ..., the tiles bloc which fails is
replaced by the content of error.jsp but not the user is not redirected.
Any idea ?
Vladislav Pernin
Vladislav Pernin wrote:
> I just found in the 1.2.4 release note that this has been resolved. So
> I'm going to take a look at 1.2.4 migration.
>
> Vladislav Pernin
>
> Vladislav Pernin wrote:
>
>> Hi all,
>>
>> I'm working in an Struts-1.1 tiles environment and I need to be able
>> to redirect user on a JSP error page when an errors occurs. I also
>> need to send an email, that can be done from the JSP error page or
>> from an exception handler.
>>
>> The global-exceptions declared in the struts-config.xml "catch" the
>> exception that occur in the struts action only.
>>
>> I also need to catch exception in the JSP, so I try to set an
>> error-page in the web.xml, the exception thrown from the
>> TableauBord.jsp is not caugth and an ugly "A ServletException in
>> /jsp/TableauBord.jsp ..." is displayed instead of the content of the
>> TableauBord.jsp inserted by <tiles:insert attribute="corps"/> in
>> Template.jsp ; the JSP error page error.jsp is not called.
>>
>> So I try to add a <%@ page errorPage="/jsp/error.jsp" %> in the pages
>> Template.jsp and TableauBord.jsp, I got a different behaviour, the
>> "ServletException ..." message went out but the JSP error page has
>> still not been called. After some testing, I realised that I could
>> put any string in the <%@ page errorPage="sdqsdsqdqsdsqd" %>, no change.
>>
>> I try to use a standard JSP page, I mean without tiles templating,
>> and my JSP error page is called with both solutions (error-page in
>> web.xml and directive errorPage in JSP).
>>
>> Maybe the response is commited before the exception is thrown ?
>>
>> The web gave me some directions, I tried all of them without any
>> success. So if you guys have an idea, it would be great.
>>
>> Regards,
>> Vladislav Pernin
>>
>> ------------------------------------------------------------------------------_
>>
>> Template.jsp:_
>>
>> <%@ page contentType="text/html;charset=utf-8" %>
>> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
>> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
>> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
>> <html>
>> <head>
>> <html:base />
>> <tiles:importAttribute name="titrePage"/>
>> ...
>>
>> <body >
>> <div class="top"><tiles:insert attribute="imagesEntete"/></div>
>> ...
>> <tiles:insert attribute="corps"/>
>> ...
>>
>> _TableauBord.jsp :
>> _JSP page where the error occurs
>>
>> _titles-defs.xml :_
>> <definition name=".MainLayout" path="/Template.jsp">
>> <put name="titrePage" value="page.defaut.titre" />
>> <put name="imagesEntete" value="/jsp/Entete.jsp" />
>> <put name="corps" value="corps" />
>> </definition>
>> <definition name=".TableauBord" extends=".MainLayout">
>> <put name="corps" value="/jsp/TableauBord.jsp"/>
>> </definition>
>>
>>
>> _struts-config.xml :_
>> ...
>> <global-exceptions>
>> <exception key="page.error.key"
>> type="java.lang.Exception"
>> path="/jsp/error.jsp"
>> handler="xxx.yyy.ExceptionHandler" />
>> </global-exceptions>
>> ...
>>
>> _web.xml :_
>> <error-page>
>> <exception-type>java.lang.Exception</exception-type>
>> <location>/jsp/error.jsp</location>
>> </error-page>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org