Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error in configure to error page in jsf?

In my project I have to display a error page when specific errors occurs in my code.
I have added the following script in my header.xhtml page.This page is added to each and every page.So whenever error occurs I want to display error page.

<script type="text/javascript">
            A4J.AJAX.onExpired = function(loc, expiredMsg) {
                window.location = "../facelets/error/invalidSessionLogin.jsf";
            };

            A4J.AJAX.onError = function(req, status, message) {
                window.location = "../facelets/error/ajaxError.jsf";
            };
        </script>

but this is not working..
And I also configure for 500,404 error in web.xml.The code is as follows.

 <context-param>
        <description>Use this to suppress Facelets error page</description>
        <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
        <param-value>false</param-value>
    </context-param>
     <error-page>
        <error-code>500</error-code>
        <location>/facelets/error/internalErrorHome.jsf</location>
    </error-page>
    <!-- if required page not available -->
    <error-page>
        <error-code>404</error-code>
        <location>/facelets/error/pageNotFoundErrorHome.jsf</location>
    </error-page>

But this gives me following error.

11:41:30,618 ERROR [[localhost]] Exception Processing ErrorPage[errorCode=404, location=/facelets/error/pageNotFoundErrorHome.jsf]
com.sun.faces.context.FacesFileNotFoundException: /facelets/error/pageNotFoundErrorHome.xhtml Not Found in ExternalContext as a Resource

I don't know where I am going to wrong.. I don't get it the error Not Found in ExternalContext as a Resource

like image 568
vijayk Avatar asked Jun 13 '13 06:06

vijayk


1 Answers

  1. You should test whether the path you have mentioned is reachable or not, and firstly fix the paths if they are not working.

  2. Why don't you create a navigation case for these error codes and then instead of using relative paths, set the appropriate urls.

    window.location = "${request.contextpath}/error/404";

Consider for example:

   mywebapp
   |
   |---WEB-INF 
   |
   |---error
   |    |
   |    |---404.xhtml

  (and so on)

In web.xml:

 <error-page>
     <error-code>404</error-code>
     <location>/error/404.xhtml</location>
 </error-page>

and similarily for 500 error-code.

like image 90
Himanshu Bhardwaj Avatar answered Oct 03 '22 00:10

Himanshu Bhardwaj