i am using jsf 2.0 on glassfish 3.0.1 to build an interface to my search engine , when i used Openfaces components on my jsf page开发者_开发知识库 and whenever i submit a form i get this error message :
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sun.faces.application.view.StateHolderSaver
i didnt find any help on the web , please what is the problem ? and how to get rid of it ?
thanks.
This is known as JSF issue 1427. Partial state saving may fail when ajax requests are fired on a page which is been opened by a JSF POST navigation case. There are three solutions, in recommended order:
Do not use POST for page-to-page navigation. So replace
<h:commandLink>
by<h:link>
or<h:outputLink>
. See alsoh:outputLink
vsh:commandLink
.Implement POST-Redirect-GET pattern. So if you're still using old fashioned
<navigation-case>
infaces-config.xml
, then add<redirect/>
entry. Or if you're using implicit navigation outcomes, then add?faces-redirect=true
query string to the outcome.Configure the problematic pages to utilize full state saving.
<context-param> <param-name>javax.faces.FULL_STATE_SAVING_VIEW_IDS</param-name> <param-value>/pagename.xhtml</param-value> </context-param>
(multiple pages can be definied using comma as separator)
Download the new version of JSF framework.
See version 2.1.11 !
It's a problems caused for bug in ajax state request on internal jsf framework !
For more information please see link http://java.net/jira/browse/JAVASERVERFACES-1845;
精彩评论