I have an issue when STATE_SAVING_METHOD is set to client. If I undeploy and redeploy the application while the application is being used, I get a "javax.crypto.BadPaddingException: Given final block not properly padded". Presumably this is happening because MyFaces is attempting to recover invalid state from a session that is no longer valid. Is this a common problem? How do people normally get around this?

I've tried two things:

1. Insert an error-page element in to my web.xml to trap the BadPaddingException. This doesn't seem to work -- this is probably because the exception is wrapped in a FacesException which is again wrapped in a ServletException, and ultimately gets handled by my regular HTTP 500 error code handler. It doesn't get handled at all if I remove the HTTP 500 error code handler.

2. I have also tried Mert Caliskan's method for intercepting exceptions before passing them on to faces (http://www.jroller.com/page/mert?entry=handling_errors_with_an_errror). However, this isn't working for me. I get the following error:

SEVERE: Allocate exception for servlet facesintercept
java.lang.IllegalStateException: No Factories configured for this Application. This happens if the faces-initialization does not work at all - make sure that you properly include all configuration settings necessary for a basic faces application and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions! If you did that and find nothing, the mistake might be due to the fact that you use some special web-containers which do not support registering context-listeners via TLD files and a context listener is not setup in your web.xml.
A typical config looks like this;
...

I'm guessing that has something to do with my use of Facelets and Shale along with MyFaces.

I'm using MyFaces 1.2 on Tomcat 6.0.13.  Thanks for any help!

--
Gary

Reply via email to