File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes JSF and the fly likes Exceeded maximum depth for nested request Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSF
Bookmark "Exceeded maximum depth for nested request" Watch "Exceeded maximum depth for nested request" New topic

Exceeded maximum depth for nested request

J Miller
Ranch Hand

Joined: Oct 21, 2010
Posts: 79
I've just set up a new JSF 1.2 project and can't get the test page up and running. I followed this tutorial to get a GlassFish 3.1 server set up in Eclipse. I've created a simple page to make sure it's working correctly, but when I try to access it, I get this:

Here's my web.xml


I've seen several posts on other sites with this problem, but no real solutions. Any help is appreciated.
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17417

I believe that you have made the common mistake of confusing a resource path with a URL path. Resource paths and URL paths have similar syntax, but they refer to completely different things handled by completely different subsystems.

A URL is the "address" of an application functional point. It is parsed by the webapp server in order to direct it to the appropriate webapp and servlet (or JSP) within the webapp, which in turn typically parses the URL in order to marshall resources and dispatch actions.

xhtml resources are Facelet definitions in the JSF View Definition Language. Facelets, incidentally are not a part of JSF version 1, so you will have to manually include Facelets support jars and web.xml definitions for a JSF 1.2 webapp.

You do not reference these resources directly in URLs. The view template resource path is computed by dissection and replacement of the URL path. Most commonly, (using the typical web.xml settings) this means that a URL such as "" will be converted to create the resource path of "/hello.xhtml" and the hello.xhtml file will then be read and used by the FacesServlet to construct the desired response.

When you pass in a URL ending with ".xhtml" with the web.xml setting you have, it is attempting to convert a resource into a resource instead of a URL into a resource, and the results are not pretty.

To remedy this, remove the ".xhtml" URL pattern and replace it with a ".jsf" pattern and use a URL of "hello.jsf".

An IDE is no substitute for an Intelligent Developer.
I agree. Here's the link:
subject: Exceeded maximum depth for nested request
It's not a secret anymore!