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