Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 Mojarra 2.1.6使用OmniFaces FullAjaxExceptionHandler时未按预期工作_Jsf 2_Mojarra_Omnifaces - Fatal编程技术网

Jsf 2 Mojarra 2.1.6使用OmniFaces FullAjaxExceptionHandler时未按预期工作

Jsf 2 Mojarra 2.1.6使用OmniFaces FullAjaxExceptionHandler时未按预期工作,jsf-2,mojarra,omnifaces,Jsf 2,Mojarra,Omnifaces,我的环境是: jdk6u31 玻璃鱼3.1.2.2 Mojarra 2.1.6与GF捆绑 PrimeFaces4.0 OmniFaces 1.6.3 我为我的应用程序配置了和,除了javax.faces.application.ViewExpiredException之外,它们可以很好地处理所有类型的异常。如果我使会话无效,然后单击某个按钮,则在引发以下异常后,将显示RuntimeException的错误页面: 信息:会话无效 严重:FullAjaxExceptionHandler:处理JSF

我的环境是:

jdk6u31 玻璃鱼3.1.2.2 Mojarra 2.1.6与GF捆绑 PrimeFaces4.0 OmniFaces 1.6.3 我为我的应用程序配置了和,除了javax.faces.application.ViewExpiredException之外,它们可以很好地处理所有类型的异常。如果我使会话无效,然后单击某个按钮,则在引发以下异常后,将显示RuntimeException的错误页面:

信息:会话无效 严重:FullAjaxExceptionHandler:处理JSF ajax请求期间发生异常。将显示错误页“/WEB-INF/errorpages/errorpage.xhtml”。java.lang.IndexOutOfBoundsException:索引:0,大小:0 位于java.util.ArrayList.RangeCheckArrayList.java:547 位于java.util.ArrayList.getArrayList.java:322 位于javax.faces.component.AttachedObjectListHolder.restoreStateAttachedObjectListHolder.java:165 位于javax.faces.component.UIComponentBase.restoreStateUIComponentBase.java:1560 在com.sun.faces.application.view.StateManagementStrategyImpl$2.visitStateManagementStrategyImpl.java:267 在com.sun.faces.component.visit.FullVisitContext.invokeVisitCallbackFullVisitContext.java:151 位于javax.faces.component.UIComponent.visittreeicomponent.java:1590 在javax.faces.component.UIComponent.visitTreeUIComponent.java:1601 在javax.faces.component.UIComponent.visitTreeUIComponent.java:1601 位于com.sun.faces.application.view.StateManagementStrategyImpl.restoreViewStateManagementStrategyImpl.java:254 位于com.sun.faces.application.StateManagerImpl.restoreViewStateManagerImpl.java:188 位于com.sun.faces.application.view.ViewHandlingStrategy.restoreViewViewHandlingStrategy.java:123 在com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreViewFaceletViewHandlingStrategy.java:453 位于com.sun.faces.application.view.MultiViewHandler.restoreViewMultiViewHandler.java:148 位于javax.faces.application.ViewHandlerWrapper.restoreViewViewHandlerWrapper.java:303 在org.omnifaces.viewhandler.RestorableViewHandler.restoreviewardorableviewhandler.java:66 位于javax.faces.application.ViewHandlerWrapper.restoreViewViewHandlerWrapper.java:303 在com.sun.faces.lifecycle.RestoreViewPhase.executeRestoreViewPhase.java:192 位于com.sun.faces.lifecycle.Phase.doPhasePhase.java:101 位于com.sun.faces.lifecycle.RestoreViewPhase.doPhaseRestoreViewPhase.java:116 在com.sun.faces.lifecycle.LifecycleImpl.executeLifecycleImpl.java:118 位于javax.faces.webapp.FacesServlet.servicefaceservlet.java:593 位于org.apache.catalina.core.StandardWrapper.serviceStandardWrapper.java:1550 位于org.apache.catalina.core.ApplicationDispatcher.doInvokeApplicationDispatcher.java:809 位于org.apache.catalina.core.ApplicationDispatcher.invokeApplicationDispatcher.java:671 位于org.apache.catalina.core.ApplicationDispatcher.processRequestApplicationDispatcher.java:505 位于org.apache.catalina.core.ApplicationDispatcher.doDispatcher应用程序Dispatcher.java:476 位于org.apache.catalina.core.ApplicationDispatcher.Dispatcher.ApplicationDispatcher.java:355 位于org.apache.catalina.core.ApplicationDispatcher.forwardApplicationDispatcher.java:305 位于org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPageFormAuthenticator.java:464 位于org.apache.catalina.authenticator.FormAuthenticator.authenticateFormAuthenticator.java:253 位于com.sun.web.security.RealmAdapter.invokeAuthenticateDelegateRealmAdapter.java:1333 位于org.apache.catalina.authenticator.AuthenticatorBase.invokeAuthenticatorBase.java:551 位于org.apache.catalina.core.StandardPipeline.doInvokeStandardPipeline.java:623 位于org.apache.catalina.core.StandardPipeline.invokeStandardPipeline.java:595 位于org.apache.catalina.core.StandardHostValve.invokeStandardHostValve.java:161 位于org.apache.catalina.connector.CoyoteAdapter.doServiceCoyoteAdapter.java:331 位于org.apache.catalina.connector.CoyoteAdapter.serviceCoyoteAdapter.java:231 位于com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.callContainerMapper.java:317 位于com.sun.enterprise.v3.services.impl.ContainerMapper.serviceContainerMapper.java:195 在com.sun.grizzly.http.ProcessorTask.invokeAdpertProcessorTask.java:860 在com.sun.grizzly.http.ProcessorTask.doProcessorTask.java:757 位于com.sun.grizzly.http.ProcessorTask.processProcessorTask.java:1056 位于com.sun.grizzly.http.DefaultProtocolFilter.executeDefaultProtocolFilter.java:229 在com.sun.grizzly.DefaultProtocolChain.executeProtocolFilterDefaultProtocolChain.java:137 在com.sun.grizzly.DefaultProtocolChain.executeDefaultProtocolChain.java:104 在com.sun.grizzly.DefaultProtocolChain.executeDefaultProtocolChain.java:90 http.HttpProtocolChain.executeHttpProtocolChain.java:79 在com.sun.grizzly.ProtocolChainContextTask.doCallProtocolChainContextTask.java:54 在com.sun.grizzly.SelectionKeyContextTask.call上 SelectionKeyContextTask.java:59 位于com.sun.grizzly.ContextTask.runContextTask.java:71 位于com.sun.grizzly.util.AbstractThreadPool$Worker.doWorkAbstractThreadPool.java:532 位于com.sun.grizzly.util.AbstractThreadPool$Worker.runAbstractThreadPool.java:513 java:662 web.xml:

小脸蛋 javax.faces.webapp.FacesServlet 1. 小脸蛋 *.xhtml 字符编码滤波器 org.omnifaces.filter.CharacterEncodingFilter 字符编码滤波器 /* FacescececeptionFilter org.omnifaces.filter.FacesExceptionFilter FacescececeptionFilter 小脸蛋 gzipResponseFilter org.omnifaces.filter.gzip响应过滤器 gzipResponseFilter /* 要求 错误 index.xhtml javax.faces.application.ViewExpiredException /WEB-INF/errorpages/expired.xhtml java.lang.RuntimeException /WEB-INF/errorpages/errorpage.xhtml 403 /WEB-INF/errorpages/403.xhtml 404 /WEB-INF/errorpages/404.xhtml 500 /WEB-INF/errorpages/500.xhtml 视图:

Bean方法:

公开无效{ 面部表情; System.out.printlnSession无效; } 公共无效btn{ System.out.printlnbtn; } 我错过什么了吗?有什么问题吗


请注意,同样的东西可以很好地使用,所以我现在将继续使用它。我遇到的另一个问题是MyFaces,如果视图过期,我无法使PF链接或按钮从错误页面工作,请尝试两种方法?faces redirect=true和faces.redirect

此问题与FullAjaxExceptionHandler无关。即使没有它,在恢复视图期间您仍然会得到IndexOutOfBoundsException。这是旧Mojarra版本的一个保存状态的bug。您需要升级它或切换到MyFaces。升级应该是替换glassfish端的glassfish/modules/javax.faces.jar文件。

我在Primefaces 4和JSF 2.1中也遇到了一些问题。我可以,我建议你试试Mojarra 2.2。我更新到2.1.26,但我仍然有问题。在本例中,我发现MyFaces无论如何都是一个更好的选择,因为这样JSF库就被插入到项目级而不是AS级。将应用程序部署到不同的服务器时,肯定会减少令人头痛的问题: