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 also h:outputLink
vs h:commandLink
.
Implement POST-Redirect-GET pattern. So if you're still using old fashioned <navigation-case>
in faces-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;