You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by Paul Nicolucci <pn...@us.ibm.com> on 2012/05/09 07:58:43 UTC
Implicit navigation issue with Faces Servlet prefix mapping
Hello All,
I've come to a problem and wanted to discuss it with the community to get
your input and make sure I'm debugging this correctly.
I have an application which was posted in MyFaces-3530
(ViewExpiredException.war) which uses a custom ExceptionHandler to deal
with a ViewExpiredException. Everything looks to be working as expected
with this when I'm using a Faces Servlet Mapping such
as the following (suffix mapping):
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
However if I use something such as this (prefix mapping):
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/f/*</url-pattern>
</servlet-mapping>
I get the following exception when doing implicit navigation in my
Exception Handler such as:
nav.handleNavigation(fc, null, "viewExpired"); // viewExpired.xhtml
exists in the web application
Exception:
Caused by: org.apache.myfaces.lifecycle.ViewNotFoundException: A view
is required to execute RENDER_RESPONSE(6)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute
(RenderResponseExecutor.java:62)
at org.apache.myfaces.lifecycle.LifecycleImpl.render
(LifecycleImpl.java:239)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
This happens due to the following fix:
https://issues.apache.org/jira/browse/MYFACES-3188
Is this working as designed or a bug? It seems we are in accordance with
the Spec, specifically Section 7.5.2, it just seems odd to me that we can't
use implicit navigation such as "viewExpired" when we use prefix mapping
and we need
to use "viewExpired.xhtml", whereas with suffix mapping "viewExpired" works
just fine since we end up using the default facelet suffix (.xhtml) and
finding the resource.
Thoughts?
Thanks,
Paul Nicolucci
Re: Implicit navigation issue with Faces Servlet prefix mapping
Posted by Paul Nicolucci <pn...@us.ibm.com>.
I'm going to open a JIRA bug for this issue. I've done a bunch of
debugging and I've narrowed it down. I'll document my findings in the
issue, I have a couple of questions I
can ask there and we can come to a solution.
Thanks,
Paul Nicolucci
Leonardo Uribe
<lu4242@gmail.com
> To
MyFaces Development
05/09/2012 07:22 <de...@myfaces.apache.org>
AM cc
Subject
Please respond to Re: Implicit navigation issue with
"MyFaces Faces Servlet prefix mapping
Development"
<dev@myfaces.apac
he.org>
Hi
It seems we have here an inconsistency, probably because the viewId is
supposed to start with /, but it seems the reference implementation
assume viewId without / are valid too. I'll check that part but I
don't have time for now, so please be patient. It will take some time.
regards,
Leonardo Uribe
2012/5/9 Paul Nicolucci <pn...@us.ibm.com>:
> Hello All,
>
> I've come to a problem and wanted to discuss it with the community to get
> your input and make sure I'm debugging this correctly.
>
> I have an application which was posted in MyFaces-3530
> (ViewExpiredException.war) which uses a custom ExceptionHandler to deal
with
> a ViewExpiredException. Everything looks to be working as expected with
> this when I'm using a Faces Servlet Mapping such
> as the following (suffix mapping):
>
> <servlet-mapping>
> <servlet-name>Faces Servlet</servlet-name>
> <url-pattern>*.jsf</url-pattern>
> </servlet-mapping>
>
>
> However if I use something such as this (prefix mapping):
>
> <servlet-mapping>
> <servlet-name>Faces Servlet</servlet-name>
> <url-pattern>/f/*</url-pattern>
> </servlet-mapping>
>
> I get the following exception when doing implicit navigation in my
Exception
> Handler such as:
>
> nav.handleNavigation(fc, null, "viewExpired"); // viewExpired.xhtml
exists
> in the web application
>
> Exception:
> Caused by: org.apache.myfaces.lifecycle.ViewNotFoundException: A view is
> required to execute RENDER_RESPONSE(6)
> at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute
(RenderResponseExecutor.java:62)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render
(LifecycleImpl.java:239)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
>
> This happens due to the following fix:
> https://issues.apache.org/jira/browse/MYFACES-3188
>
> Is this working as designed or a bug? It seems we are in accordance with
> the Spec, specifically Section 7.5.2, it just seems odd to me that we
can't
> use implicit navigation such as "viewExpired" when we use prefix mapping
and
> we need
> to use "viewExpired.xhtml", whereas with suffix mapping "viewExpired"
works
> just fine since we end up using the default facelet suffix (.xhtml) and
> finding the resource.
>
> Thoughts?
>
> Thanks,
>
> Paul Nicolucci
Re: Implicit navigation issue with Faces Servlet prefix mapping
Posted by Leonardo Uribe <lu...@gmail.com>.
Hi
It seems we have here an inconsistency, probably because the viewId is
supposed to start with /, but it seems the reference implementation
assume viewId without / are valid too. I'll check that part but I
don't have time for now, so please be patient. It will take some time.
regards,
Leonardo Uribe
2012/5/9 Paul Nicolucci <pn...@us.ibm.com>:
> Hello All,
>
> I've come to a problem and wanted to discuss it with the community to get
> your input and make sure I'm debugging this correctly.
>
> I have an application which was posted in MyFaces-3530
> (ViewExpiredException.war) which uses a custom ExceptionHandler to deal with
> a ViewExpiredException. Everything looks to be working as expected with
> this when I'm using a Faces Servlet Mapping such
> as the following (suffix mapping):
>
> <servlet-mapping>
> <servlet-name>Faces Servlet</servlet-name>
> <url-pattern>*.jsf</url-pattern>
> </servlet-mapping>
>
>
> However if I use something such as this (prefix mapping):
>
> <servlet-mapping>
> <servlet-name>Faces Servlet</servlet-name>
> <url-pattern>/f/*</url-pattern>
> </servlet-mapping>
>
> I get the following exception when doing implicit navigation in my Exception
> Handler such as:
>
> nav.handleNavigation(fc, null, "viewExpired"); // viewExpired.xhtml exists
> in the web application
>
> Exception:
> Caused by: org.apache.myfaces.lifecycle.ViewNotFoundException: A view is
> required to execute RENDER_RESPONSE(6)
> at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:62)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
>
> This happens due to the following fix:
> https://issues.apache.org/jira/browse/MYFACES-3188
>
> Is this working as designed or a bug? It seems we are in accordance with
> the Spec, specifically Section 7.5.2, it just seems odd to me that we can't
> use implicit navigation such as "viewExpired" when we use prefix mapping and
> we need
> to use "viewExpired.xhtml", whereas with suffix mapping "viewExpired" works
> just fine since we end up using the default facelet suffix (.xhtml) and
> finding the resource.
>
> Thoughts?
>
> Thanks,
>
> Paul Nicolucci