Tengo una página JSF que no está protegida por j_security_check
. Realizo los siguientes pasos:ViewExpiredException no lanzada en la solicitud ajax si la página JSF está protegida por j_security_check
- Abra la página JSF en un navegador.
- Reinicia el servidor.
- Haga clic en un botón de comando en la página JSF para iniciar una llamada ajax.
Firebug muestra que se genera un ViewExpiredException
, como se esperaba.
la publicación:
javax.faces.ViewState=8887124636062606698:-1513851009188353364
Respuesta:
<partial-response> <error> <error-name>class javax.faces.application.ViewExpiredException</error-name> <error-message>viewId:/viewer.xhtml - View /viewer.xhtml could not be restored.</error-message> </error> </partial-response>
Sin embargo, una vez que se configura la página de ser protegidos por j_security_check
y realizar los mismos pasos mencionados anteriormente, por extraño que (para mí) el ViewExpiredException
ya no se plantea. En cambio, la respuesta es solo un nuevo estado de vista.
la publicación:
javax.faces.ViewState=-4873187770744721574:8069938124611303615
Respuesta:
<partial-response> <changes> <update id="javax.faces.ViewState">234065619769382809:-4498953143834600826</update> </changes> </partial-response>
Puede alguien ayudarme a resolver esto? Espero que genere una excepción, así que puedo procesar esa excepción y mostrar una página de error. Ahora solo responde con un nuevo ViewState, mi página simplemente se atascó sin ningún comentario visual.
Gracias BalusC. Me salvó el día. –
De nada. – BalusC
Oh, una pregunta adicional, me pregunto por qué sucede lo siguiente: si uso context.getExternalContext(). Redirect (loginURL), de hecho me redirige a la página de inicio de sesión. Pero después de iniciar sesión, el navegador muestra un archivo xml, con ViewState como su contenido. El archivo xml es exactamente el mismo que el segundo archivo xml que publiqué en mi pregunta. Si uso context.getExternalContext(). Redirect (homepageURL), todo funciona bien. Me llevará la página de inicio de sesión. Una vez que haya iniciado sesión, se mostrará la página de inicio. –