正在处理的页面仅在错误/异常中间留下空白,而不是转发到web.xml中指定的错误页面 [英] Pages being processed are merely left blank half way through on errors/exceptions instead of forwarding to the error page specified in web.xml
问题描述
$ b
<错误页>
<错误代码> 401< /错误代码>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
< error-code> 403< / error-code>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
< error-code> 404< / error-code>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
<错误代码> 500< /错误代码>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
< error-code> 503< / error-code>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
当发生任何异常(导致500内部服务器错误)时,该请求将被调度到指定的错误页面,但是当发生异常时,正在处理的页面只剩下一半空白。
$ b
配置 也没有帮助。 web.xml的完整内容: 还尝试了一个空白项目,只有一个单独的XHTML页面,没有任何错误页面配置.XML。如果发生异常(在其他HTTP状态中,只有404个作品),页面仅保留为空白而不是转发到错误页面。 如何分派到指定的错误页面,当发生任何异常/错误时? 更新1: p> 根据这个问题/答案,我添加了上下文参数 更新2 :在设置了编辑1中提到的缓冲区大小之后,我在某个时间(当请求被重定向到安全区域时得到以下例外): 成功登录后)。 更新3: 我试图增加缓冲区大小( 在Ajaxical的情况下,通过OmniFaces的异步请求, 也许,如果我在开始时配置了错误页面,那么可能会发现问题的原因 - 当我启动应用程序时,应用程序因此没有多少额外的开销许多XHTML页面,CDI管理的bean,EJB会话bean等,但无论如何,我不知所措。 Update 4: 我现在在WildFly 9.0.2 final上运行相同的应用程序。问题保持不变。 通过增加错误页面大小来检查GeneralError.xhtml。 In web.xml, I have the following configurations for a global error page. When any exception occurs (that result in 500 internal server error), the request is expected to be dispatched to the error page specified but when an exception occurs, the page which is being processed is just left blank in half way through. It does not forward to the error page. Configuring also did not help anymore. The full contents of web.xml : Also tried on a blank project with only a single XHTML page and nothing other than error page configurations in web.xml. Pages are merely left blank half way through instead of forwarding to the error page, when an exception occurs (among other HTTP status, only 404 works). How to dispatch to a specified error page, when any exception/error occurs? Update 1 : According to this question/answer, I added the context parameter Update 2 : After setting the buffer size as mentioned in edit 1, I got the following exception at a certain time (when a request is redirected to a secured area after a successful login). So, I removed that parameter for now.
Update 3 : I tried to increase the buffer size ( In Ajaxical things, error pages by the way, are correctly rendered on errors during asynchronous requests by means of OmniFaces - Perhaps, it could have been possible to see the cause of the problem, if I had configured error pages in the beginning - when I started the application and the application consequently had no much extra overhead that it currently has with many XHTML pages, CDI managed beans, EJB session beans etc but anyway I overwhelmed it. Update 4: I am now running the same application on WildFly 9.0.2 final. The problem remains unchanged. Check by increasing the size of your error page GeneralError.xhtml.
Sometimes the server doesn't display the error page if it is smaller in size.
i.e. try adding some more 50-100 lines of text to GeneralError.xhtml and check) 这篇关于正在处理的页面仅在错误/异常中间留下空白,而不是转发到web.xml中指定的错误页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! java.lang.Throwable
或它不会转发到错误页面。
< error-页面>
< exception-type> java.lang.Throwable< / exception-type>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<?xml version =1.0encoding =UTF-8?>
< web-app version =3.1xmlns =http://xmlns.jcp.org/xml/ns/javaeexmlns:xsi =http://www.w3.org/2001/ XMLSchema-instancexsi:schemaLocation =http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd\">
< context-param>
< param-name> javax.faces.FACELETS_LIBRARIES< / param-name>
< param-value> /WEB-INF/my.taglib.xml< / param-value>
< / context-param>
< context-param>
< / param-name> javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE< / param-name>
< param-value> true< /参数值>
< / context-param>
< context-param>
< param-name> javax.faces.PROJECT_STAGE< / param-name>
<参数值>生产< /参数值>
< / context-param>
< context-param>
< param-name> com.sun.faces.enableViewStateIdRendering< / param-name>
< param-value> true< /参数值>
< / context-param>
< context-param>
< param-name> com.sun.faces.enableRestoreView11Compatibility< / param-name>
< param-value> true< /参数值>
< / context-param>
< context-param>
< param-name> javax.faces.STATE_SAVING_METHOD< / param-name>
< param-value>服务器< /参数值>
< / context-param>
< context-param>
< param-name> log4jConfigLocation< / param-name>
< param-value> /WEB-INF/log4j.properties< / param-value>
< / context-param>
< context-param>
< param-name> log4jExposeWebAppRoot< / param-name>
< param-value> false< /参数值>
< / context-param>
< filter>
< filter-name> PrimeFaces FileUpload过滤器< /过滤器名称>
< filter-class> org.primefaces.webapp.filter.FileUploadFilter< / filter-class>
< / filter>
< filter-mapping>
< filter-name> PrimeFaces FileUpload过滤器< /过滤器名称>
< servlet-name> Faces Servlet< / servlet-name>
< / filter-mapping>
< servlet>
< servlet-name> Faces Servlet< / servlet-name>
< servlet-class> javax.faces.webapp.FacesServlet< / servlet-class>
<加载启动> 1< /加载启动>
< / servlet>
< servlet-mapping>
< servlet-name> Faces Servlet< / servlet-name>
< url-pattern> *。xhtml< / url-pattern>
< / servlet-mapping>
<错误页面>
<错误代码> 401< /错误代码>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
< error-code> 403< / error-code>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
< error-code> 404< / error-code>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
<错误代码> 500< /错误代码>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
< error-code> 503< / error-code>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
<错误页面>
< exception-type> java.lang.Throwable< / exception-type>
< location> /WEB-INF/error_pages/GeneralError.xhtml< / location>
< / error-page>
< security-constraint>
< display-name> AdminConstraint< / display-name>
< web-resource-collection>
< web-resource-name> ROLE_ADMIN< / web-resource-name>
< description />
< url-pattern> / admin_side / *< / url-pattern>
< / web-resource-collection>
< auth-constraint>
< description />
< role-name> ROLE_ADMIN< / role-name>
< / auth-constraint>
< user-data-constraint>
< description />
< transport-guarantee> CONFIDENTIAL< / transport-guarantee>
< / user-data-constraint>
< / security-constraint>
< security-constraint>
< display-name> UserConstraint< / display-name>
< web-resource-collection>
< web-resource-name> ROLE_USER< / web-resource-name>
< description />
< url-pattern> / user_side / *< / url-pattern>
< / web-resource-collection>
< auth-constraint>
< description />
< role-name> ROLE_USER< / role-name>
< / auth-constraint>
< user-data-constraint>
< description />
< transport-guarantee> CONFIDENTIAL< / transport-guarantee>
< / user-data-constraint>
< / security-constraint>
< login-config>
< auth-method> FORM< / auth-method>
< realm-name> projectRealm< / realm-name>
< form-login-config>
< form-login-page> /utility/Login.xhtml< / form-login-page>
< form-error-page> /utility/ErrorPage.xhtml< / form-error-page>
< / form-login-config>
< / login-config>
< security-role>
< description />
< role-name> ROLE_ADMIN< / role-name>
< / security-role>
< security-role>
< description />
< role-name> ROLE_USER< / role-name>
< / security-role>
<! - 错误页面>
< / exception-type> javax.faces.application.ViewExpiredException< / exception-type>
< location> /utility/Login.xhtml< / location>
< / error-page - >
< session-config>
< session-timeout>
120
< / session-timeout>
< tracking-mode> COOKIE< / tracking-mode>
< / session-config>
< welcome-file-list>
< welcome-file> utility / Login.xhtml< / welcome-file>
< / welcome-file-list>
< / web-app>
javax.faces.FACELETS_BUFFER_SIZE
复制到web.xml以获得64KB的缓冲区大小,但没有发生新的事情。如果发生异常,它仍然不会转发到错误页面。如果发生异常/错误,页面只会被部分处理并在中途留空。异常堆栈跟踪只能在服务器终端上找到,而不能在网页上找到(如果500内部服务器错误)。我故意让应用程序抛出异常,看是否转发到错误页面。
严重:错误渲染视图[/utility/Login.xhtml]
java.lang.IllegalStateException $在org.apache.catalina.connector.ResponseFacade.setBufferSize(ResponseFacade.java:285)b
$ b。在com.sun.faces.context.ExternalContextImpl.setResponseBufferSize(ExternalContextImpl.java:923 )
处com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView com.sun.faces.application.view.FaceletViewHandlingStrategy.createResponseWriter(FaceletViewHandlingStrategy.java:1162)
(FaceletViewHandlingStrategy.java:403 )美元,com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133 b $ b)
在javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
。在javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
在com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
A t com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces .webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain .internalDoFilter(ApplicationFilterChain.java:344)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter的.java:72)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:256)
。在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214 )
处org.apache.catalina.core.ApplicationFilterChain.internalDoFilter filter.LoginNocacheFilter.doFilter(LoginNocacheFilter.java:39)
(ApplicationFilterChain.java:256 )在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214
)
在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
。在在org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
。在组织。 apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina。 core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter。服务(CoyoteAdapter.java:282)
在com.sun.enterprise.v3.services.impl.ContainerMapper $ HttpHandlerCallable.call(ContainerMapper.java:459)
在com.sun.enterprise.v3。 services.impl.ContainerMapper.serv在org.glassfish.grizzly.http.server.HttpHandler.runService冰(ContainerMapper.java:167)
(HttpHandler.java:201)
。在org.glassfish.grizzly.http.server.HttpHandler。 doHandle(HttpHandler.java:175)
在org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
在org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute (ExecutorResolver.java:119)在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java :201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCP NIOTransport.java:561)美元,org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112 B $ B)
在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java: 117)
。在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:56)$ b $在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run b(WorkerThreadIOStrategy.java:137 )
在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:565)
在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:545 )
java.lang.Thread.run(Thread.java:745)
Info:处理尝试重置响应的错误时发生异常。
$ java.lang.IllegalStateException在org.apache.catalina.connector.ResponseFacade.setBufferSize(ResponseFacade.java:285)B
$ b。在com.sun.faces.context.ExternalContextImpl.setResponseBufferSize(ExternalContextImpl的.java:923)
处com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView com.sun.faces.application.view.FaceletViewHandlingStrategy.createResponseWriter(FaceletViewHandlingStrategy.java:1162)
(FaceletViewHandlingStrategy的.java:403)
处javax.faces.application.ViewHandlerWrapper.renderView com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
(ViewHandlerWrapper.java:337 )
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(Lifec ycleImpl.java:219)
在javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
在org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:72)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
在org.apache .catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在filter.LoginNocacheFilter.doFilter(LoginNocacheFilter.java:39)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain .java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at or g.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
在org.apache。 catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
处com.sun.enterprise.web org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
。 WebPipeline.invoke(WebPipeline.java:99)
在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
在org.apache.catalina.connector.CoyoteAdapter.doService( CoyoteAdapter.java:415)
在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
在com.sun.enterprise.v3.services.impl.ContainerMapper $ HttpHandlerCallable。在org.glassfish.grizzly.http.server上调用(ContainerMapper.java:459)
在com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
。 HttpHandler.runService(HttpHandler.java:20 1)
在org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
在org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java: 235)
在org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119)
在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
。在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
在org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
。在org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
在org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
。在org.glassfish.grizzly。 nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy。的java:在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117 112)
)
。在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:56 )
在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:565 )
在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:545)$ b $在java.lang.Thread.run(Thread.java:745)
100002400
太多了),直到错误 java.lang.OutOfMemoryError :发布Java堆空间
。因此,输出缓冲区大小不应该成为问题。
org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory
配置在 faces-config.xml中
。
有时,如果服务器的大小较小,则不显示错误页面。
即尝试向GeneralError.xhtml添加更多50-100行文本并检查)<error-page>
<error-code>401</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
java.lang.Throwable
or java.lang.Exception
as follows,<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/my.taglib.xml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.enableViewStateIdRendering</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>false</param-value>
</context-param>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<error-page>
<error-code>401</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/WEB-INF/error_pages/GeneralError.xhtml</location>
</error-page>
<security-constraint>
<display-name>AdminConstraint</display-name>
<web-resource-collection>
<web-resource-name>ROLE_ADMIN</web-resource-name>
<description/>
<url-pattern>/admin_side/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>ROLE_ADMIN</role-name>
</auth-constraint>
<user-data-constraint>
<description/>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<display-name>UserConstraint</display-name>
<web-resource-collection>
<web-resource-name>ROLE_USER</web-resource-name>
<description/>
<url-pattern>/user_side/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>ROLE_USER</role-name>
</auth-constraint>
<user-data-constraint>
<description/>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>projectRealm</realm-name>
<form-login-config>
<form-login-page>/utility/Login.xhtml</form-login-page>
<form-error-page>/utility/ErrorPage.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description/>
<role-name>ROLE_ADMIN</role-name>
</security-role>
<security-role>
<description/>
<role-name>ROLE_USER</role-name>
</security-role>
<!--error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/utility/Login.xhtml</location>
</error-page-->
<session-config>
<session-timeout>
120
</session-timeout>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
<welcome-file-list>
<welcome-file>utility/Login.xhtml</welcome-file>
</welcome-file-list>
</web-app>
javax.faces.FACELETS_BUFFER_SIZE
to web.xml to have 64KB buffer size but nothing new happened. It still does not forward to the error page, if an exception occurs. Pages are just partially processed and left blank in half way through, if an exception/error occurs. The exception stacktrace is only found on the server terminal and not on the web page (in case 500 internal server error). I deliberately make the application throw an exception to see, if it forwards to the error page.
Severe: Error Rendering View[/utility/Login.xhtml]
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.setBufferSize(ResponseFacade.java:285)
at com.sun.faces.context.ExternalContextImpl.setResponseBufferSize(ExternalContextImpl.java:923)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.createResponseWriter(FaceletViewHandlingStrategy.java:1162)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:403)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at filter.LoginNocacheFilter.doFilter(LoginNocacheFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
Info: Exception when handling error trying to reset the response.
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.setBufferSize(ResponseFacade.java:285)
at com.sun.faces.context.ExternalContextImpl.setResponseBufferSize(ExternalContextImpl.java:923)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.createResponseWriter(FaceletViewHandlingStrategy.java:1162)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:403)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at filter.LoginNocacheFilter.doFilter(LoginNocacheFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
100002400
that's too much) until the error java.lang.OutOfMemoryError: Java heap space
is issued. Therefore, the output buffer size should not be the problem.org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory
configured in faces-config.xml
.