I tienen las siguientes define en web.xml:página de error definido en web.xml está incrustado en la página JSF parcialmente generado
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/shared/errors/DefaultErrorPage.xhtml</location>
</error-page>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/shared/errors/ViewExpired.xhtml</location>
</error-page>
También estoy usando el FullAjaxExceptionHandler de Omnifaces en faces-config.xml:
<factory>
<exception-handler-factory>
org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory
</exception-handler-factory>
</factory>
el FullAjaxExceptionHandler está trabajando muy bien para las llamadas ajax, pero cuando llegué a una página directamente y no hay un error, se inicia la prestación de la página que estaba tratando de ir, pero no termina, y luego la página de error definida en web.xml se procesa, lo que da como resultado que se incorpore la página de error d después de una página parcialmente renderizada.
(estoy usando GlassFish 3.1.1 que tiene Mojarra JSF 2.1.3) Editar: ahora usando Glassfish 3.1.2.2 y 2.1.11 JSF
Editar: Descubierto el siguiente: la página en el error Está sucediendo el uso de plantillas (<ui:composition template="/shared/shared/commonLayout.xhtml">
) Si lo cambio para que la página ya no use la plantilla, y luego simplemente agregue todo el código de la plantilla, entonces funciona bien.
Esto es extraño. Para excluir el uno y el otro, ¿la etapa del proyecto JSF está configurada en 'Desarrollo' o no? – BalusC
Sí, está establecido en Desarrollo. – jc12
Traté de cambiarlo a Producción, pero sigo obteniendo los mismos resultados. No estoy seguro de lo que quiere decir con "excluir el uno y el otro".Si estoy usando FullAjaxExceptionHandlerFactory para llamadas ajax, ¿también necesito un ExceptionHandlerFactory para llamadas que no sean ajax? – jc12