Hi all,

Does the no answer to my mail mean "there's no answer"? :-)

Regards,
Zied

2008/9/22 Zied Hamdi <[EMAIL PROTECTED]>

> Hi all,
>
> I used to have in all my apps a "J2ee like" mecanism that defines two basic
> exceptions Business and System, where business messages include a i18n
> message and system one lead to an unconditional output. In a central place
> (eg. for struts it was the superclass of all actions), I organized my output
> against the exception type and message key. That way in my app I never had
> to to handle error presentation in my business logic (instead i was throwing
> general or sometimes specialized exceptions and handling that later (even in
> the application developement cycle)).
>
> Attemping to do the same with JSF I have a big problem there's no way to do
> it through standard JSF extentions, even more, the class I have to override
> depends on the specific implementation (it is not in the jsf-api.jar) eg.
> for the mojarra impl I have to overrride
> com.sun.faces.lifecycle.LifecycleImpl's execute method:
>
>     public void execute(FacesContext context) throws FacesException {
>
>         if (context == null) {
>             throw new NullPointerException
>                 (MessageUtils.getExceptionMessageString
>                  (MessageUtils.NULL_PARAMETERS_ERROR_MESSAGE_ID,
> "context"));
>         }
>
>         if (LOGGER.isLoggable(Level.FINE)) {
>             LOGGER.fine("execute(" + context + ")");
>         }
>
>         for (int i = 1, len = phases.length -1 ; i < len; i++) { // Skip
> ANY_PHASE placeholder
>
>             if (context.getRenderResponse() ||
>                 context.getResponseComplete()) {
>                 break;
>             }
>
>             phases[i].doPhase(context, this, listeners.listIterator());
>
>         }
>
>     }
>
> by surrounding it with a try-catch block that delegates exception handling
> to the class responsible for that (to add FacesMessage(s)).
>
> Then I have to rely on the classloader to find my class before the one in
> the jar with the same name. I think this is also transgrating the sun
> licence that allows me to use the classes as is.
>
> The procedure is similar with the myFaces implementation with the exception
> that the Apache licence lets me do this manipulation legally. (But I'm using
> JBoss wich bundles the RI so there's also work to do to switch
> implementations)
>
> All this is to ask if anoyone knows about a less acrobatic way to have the
> needed behavior. Notice that I want to use the same exceptions for
> validators and converters also that's why I intercept the overall phasis
> cycle rather than the com.sun.faces.lifecycle.InvokeApplicationPhase class.
>
> Also note that javax.faces.validator.DoubleRangeValidator (as an example)
> uses this same schema in conjunction with the javax.faces.component.UIInput
> that expects this type of exceptions and handles it specifically. I want to
> expand this schema to the whole application.
>
>
> Your help is very appreciated, I really don't want to get out of the
> standard procedure.
>
> Kind Regards,
> Zied
>
> --
> Zied Hamdi
> www.into-i.fr
> (previously in 2003)
> zatreex.sf.net
>



-- 
Zied Hamdi
www.into-i.fr
(previously in 2003)
zatreex.sf.net

Reply via email to