You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Andrew Robinson <an...@gmail.com> on 2006/06/25 00:18:43 UTC

Error page in JSF - facelets

I am trying to get a JSF error page to work (<error-page> registered
in web.xml). I am using the following jars:

Facelets 1.0.14
MyFaces Core 1.1.3
Tomahawk 1.1.2

When I get a 404 error (or another error) I get the following error:

java.lang.IllegalStateException: getOutputStream() has already been
called for this response
at ...
at com.sun.facelets.FaceletViewHandler.renderFiew(FaceletViewHandler:381)

Config:

<error-page>
  <error-code>404</error-code>
  <location>/displayError.jsf</location>
</error-page>

The error is or is related to http://issues.apache.org/jira/browse/TOMAHAWK-78

However, that page does not seem to help at all. Is there any way to
get a jsf/xhtml (not jsf/jsp) to serve as an error page?

-Andrew

Re: Error page in JSF - facelets

Posted by Andrew Robinson <an...@gmail.com>.
Actually the error page works fine for exceptions and such, just not
404. I think the problem is the filters I am using. I am using the
following filters:

AjaxAnywhere
Seam Exceptions
Seam Redirect
MyFaces Extensions

One of them must be calling the getOutputStream. If the JSF file
doesn't exist, the response is still open, which it should not be (the
get output stream should not be called until the render response
phase). One of these filters must not be checking the status code
before calling the get output stream method. It may be the extensions
filter, as I have seen this posted about it before (but people thought
it was fixed in 1.2, so maybe not?)

-Andrew

On 6/26/06, Rick <ri...@arc-mind.com> wrote:
> No. I don't believe there is a way, but it likely depends on your app
> server.
>
> What I usually do (so I can share my facelet template with my error page),
> is just forward from my jsp error page to my facelet error page.
>
> Error.jsp
>
> <jsp:forward page="realError.faces"/>
>
> Where realError.faces is my Facelet page and "faces" is mapped to my Faces
> Servlet.
>
>
>
> -----Original Message-----
> From: Andrew Robinson [mailto:andrew.rw.robinson@gmail.com]
> Sent: Saturday, June 24, 2006 3:19 PM
> To: MyFaces Discussion; Facelets users
> Subject: Error page in JSF - facelets
>
> I am trying to get a JSF error page to work (<error-page> registered
> in web.xml). I am using the following jars:
>
> Facelets 1.0.14
> MyFaces Core 1.1.3
> Tomahawk 1.1.2
>
> When I get a 404 error (or another error) I get the following error:
>
> java.lang.IllegalStateException: getOutputStream() has already been
> called for this response
> at ...
> at com.sun.facelets.FaceletViewHandler.renderFiew(FaceletViewHandler:381)
>
> Config:
>
> <error-page>
>   <error-code>404</error-code>
>   <location>/displayError.jsf</location>
> </error-page>
>
> The error is or is related to
> http://issues.apache.org/jira/browse/TOMAHAWK-78
>
> However, that page does not seem to help at all. Is there any way to
> get a jsf/xhtml (not jsf/jsp) to serve as an error page?
>
> -Andrew
>
>
>

RE: Error page in JSF - facelets

Posted by Rick <ri...@arc-mind.com>.
No. I don't believe there is a way, but it likely depends on your app
server. 

What I usually do (so I can share my facelet template with my error page),
is just forward from my jsp error page to my facelet error page.

Error.jsp

<jsp:forward page="realError.faces"/>

Where realError.faces is my Facelet page and "faces" is mapped to my Faces
Servlet.



-----Original Message-----
From: Andrew Robinson [mailto:andrew.rw.robinson@gmail.com] 
Sent: Saturday, June 24, 2006 3:19 PM
To: MyFaces Discussion; Facelets users
Subject: Error page in JSF - facelets

I am trying to get a JSF error page to work (<error-page> registered
in web.xml). I am using the following jars:

Facelets 1.0.14
MyFaces Core 1.1.3
Tomahawk 1.1.2

When I get a 404 error (or another error) I get the following error:

java.lang.IllegalStateException: getOutputStream() has already been
called for this response
at ...
at com.sun.facelets.FaceletViewHandler.renderFiew(FaceletViewHandler:381)

Config:

<error-page>
  <error-code>404</error-code>
  <location>/displayError.jsf</location>
</error-page>

The error is or is related to
http://issues.apache.org/jira/browse/TOMAHAWK-78

However, that page does not seem to help at all. Is there any way to
get a jsf/xhtml (not jsf/jsp) to serve as an error page?

-Andrew