Forums de discussion

ClassNotFoundException UserImpl with @viewState

khalid horri, modifié il y a 10 années.

ClassNotFoundException UserImpl with @viewState

New Member Publications: 7 Date d'inscription: 01/11/10 Publications récentes
Hello
First I use the this configuration :
1- liferay-portal-6.1.1-ce-ga2
2- Tomcat 7
3- liferay-faces-portal-3.1.0-ga1
4- primefaces-3.5
I have portlet that contains beans with a viewState, when a want to display the portlet I get this error
Bean :

@ManagedBean
@ViewScoped
public class InternalMaintenanceBean implements Serializable {
        //Properties and methods here...

          public void activateInternalMaintenance(InternalMaintenance internalMaintenance) {
	LiferayFacesContext facesContext = LiferayFacesContext.getInstance();
	FacesMessage msg = null;
	try {
	    // this.instrumentId = "" + this.internalMaintenance.getInstrumentId();
	    boolean actualSatus = internalMaintenance.getActivated();
	    internalMaintenance.setActivated(!actualSatus);
	    InternalMaintenanceLocalServiceUtil.updateInternalMaintenance(internalMaintenance);
	    msg = new FacesMessage("internalMaintenance-activated-successffully");
	    facesContext.addMessage(null, msg);
	    this.showMessage = true;
	} catch (SystemException e) {
	    msg = new FacesMessage("an-error-occured-when-activating-the-internalMaintenance");
	    logger.error("an-error-occured-when-activating-the-internalMaintenance", e);
	    facesContext.addMessage(null, msg);
	}
    }
}

the view :


<p:datatable id="dataTable" var="internalMaintenance" value="#{internalMaintenanceBean.internalMaintenances}" paginator="true" rows="20" paginatorposition="bottom" paginatortemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsperpagetemplate="10,20,30" selection="#{internalMaintenanceBean.selectedInternalMaintenances}" rowkey="#{internalMaintenance.internalMaintenanceId}" widgetvar="internalMaintenanceDataTable" filteredvalue="#{internalMaintenanceBean.filtredInternalMaintenances}">

				<p:column selectionMode="multiple" style="width:2%" />

				<p:column sortby="#{internalMaintenance.label}" filterby="#{internalMaintenance.label}">
					<f:facet name="header">
						<h:outputtext value="#{i18n['internalMaintenance.label']}" />
					</f:facet>
					<h:outputtext value="#{internalMaintenance.label}" />
				</p:column>

				<p:column sortby="#{internalMaintenance.userExecutor.fullName}" filterby="#{internalMaintenance.userExecutor.fullName}">
					<f:facet name="header">
						<h:outputtext value="#{i18n['internalMaintenance.executant']}" />
					</f:facet>
					<h:outputtext value="#{internalMaintenance.userExecutor.fullName}" />
				</p:column>

				<p:column>
					<f:facet name="header">
						<h:outputtext value="#{i18n['internalMaintenance.executionDate']}" />
					</f:facet>
					<h:outputtext value="#{i18n['internalMaintenance.repetition.everyDay']} " rendered="#{internalMaintenance.repetition.repetitionType.codeRepetition==1}" />
					<h:outputtext value="#{internalMaintenance.executionDate} " />
					<h:outputtext value="#{i18n['internalMaintenance.repetition.at']} " rendered="#{internalMaintenance.repetition.repetitionType.codeRepetition==2}" />
					<h:outputtext value="#{i18n['internalMaintenance.repetition.of.everyMonth']} " rendered="#{internalMaintenance.repetition.repetitionType.codeRepetition==3}" />
					<h:outputtext value="#{i18n['internalMaintenance.repetition.at']} " rendered="#{internalMaintenance.repetition.repetitionType.codeRepetition==4}" />
					<h:outputtext value="#{internalMaintenance.executionTime}">
						<f:convertdatetime pattern="HH:mm" />
					</h:outputtext>
				</p:column>

				<p:column sortby="#{internalMaintenance.activated}" filterby="#{internalMaintenance.activated}" filteroptions="#{internalMaintenanceBean.statusOptions}" filtermatchmode="exact">
					<f:facet name="header">
						<h:outputtext value="#{i18n['activated']}" />
					</f:facet>
					<p:commandlink actionlistener="#{internalMaintenanceBackingBean.activateInternalMaintenance(internalMaintenance)}" update=":frm:dataTable" process="@this">
						<h:graphicimage value="/web/img/bullet-green.png" rendered="#{internalMaintenance.activated}"></h:graphicimage>
						<h:graphicimage value="/web/img/bullet-red.png" rendered="#{!internalMaintenance.activated}"></h:graphicimage>
					</p:commandlink>
				</p:column>
				
				  
				
			</p:datatable>

So when I click on the commandLink I get this error, Any help is appreciated

19:10:14,164 ERROR [ExceptionHandlerAjaxImpl:57] java.lang.ClassNotFoundException: com.liferay.portal.model.impl.UserImpl
javax.faces.FacesException: java.lang.ClassNotFoundException: com.liferay.portal.model.impl.UserImpl
	at com.sun.faces.renderkit.ClientSideStateHelper.doGetState(ClientSideStateHelper.java:273)
	at com.sun.faces.renderkit.ClientSideStateHelper.getState(ClientSideStateHelper.java:198)
	at com.sun.faces.renderkit.ResponseStateManagerImpl.getState(ResponseStateManagerImpl.java:100)
	at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:224)
	at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:188)
	at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:453)
	at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:142)
	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:303)
	at com.liferay.faces.bridge.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:88)
	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:303)
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:192)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at com.liferay.faces.bridge.lifecycle.LifecycleWrapper.execute(LifecycleWrapper.java:35)
	at com.liferay.faces.bridge.BridgePhaseResourceImpl.execute(BridgePhaseResourceImpl.java:99)
	at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:116)
	at javax.portlet.faces.GenericFacesPortlet.serveResource(GenericFacesPortlet.java:178)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:118)
	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:71)
	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:111)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:531)
	at com.liferay.portlet.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:626)
	at com.liferay.portlet.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:436)
	at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:1075)
	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:719)
	at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:249)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:176)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
	at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:560)
	at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:537)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:294)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
	at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:138)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:123)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:294)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:241)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:246)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:80)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:216)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:169)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:168)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: com.liferay.portal.model.impl.UserImpl
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at com.sun.faces.renderkit.ApplicationObjectInputStream.resolveClass(ApplicationObjectInputStream.java:95)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at java.util.ArrayList.readObject(ArrayList.java:593)
	at sun.reflect.GeneratedMethodAccessor393.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at java.util.HashMap.readObject(HashMap.java:1030)
	at sun.reflect.GeneratedMethodAccessor415.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at java.util.HashMap.readObject(HashMap.java:1030)
	at sun.reflect.GeneratedMethodAccessor415.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at com.sun.faces.renderkit.ClientSideStateHelper.doGetState(ClientSideStateHelper.java:255)
	... 150 more
thumbnail
Juan Gonzalez, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

Liferay Legend Publications: 3089 Date d'inscription: 28/10/08 Publications récentes
Can you change from:

com.liferay.portal.model.impl.UserImpl


to:

com.liferay.portal.model.User
?
khalid horri, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

New Member Publications: 7 Date d'inscription: 01/11/10 Publications récentes
Thanks for the reply,
But I use
com.liferay.portal.model.User

as reference for the the User object.
The Error throws when restoring the view
khalid horri, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

New Member Publications: 7 Date d'inscription: 01/11/10 Publications récentes
Hello,
If I replace @ViewScoped by @RequestScoped or @SessionScoped nothing happen and all actions are right, so the problem persist only with the @ViewScoped
thumbnail
Juan Gonzalez, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

Liferay Legend Publications: 3089 Date d'inscription: 28/10/08 Publications récentes
Hi khalid,

Can you re-test using latest Liferay Faces version available? In your case you should use 3.1.3 GA4 instead.

I can't reproduce what you're saying using @ViewScoped in an updatable bean using a form.

Thanks.
thumbnail
Neil Griffin, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

Liferay Legend Publications: 2655 Date d'inscription: 27/07/05 Publications récentes
Hi Khalid,

The "Caused by" part of the stack trace has this at the bottom:

206    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
207    at com.sun.faces.renderkit.ClientSideStateHelper.doGetState(ClientSideStateHelper.java:255)
208    ... 150 more


That would indicate that you are using client-side state saving, and that there is a UIComponent in the component tree that is trying to de-serialize an instance of UserImpl that was previously serialized during UIComponent.saveState(FacesContext).

So I would recommend that you try and identify which component is trying to do that. It would be reasonable for UserImpl to get serialized if it was in a @ViewScoped managed-bean in a cluster, but it should never be part of the value contained in the javax.faces.ViewState hidden field.

Neil
khalid horri, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

New Member Publications: 7 Date d'inscription: 01/11/10 Publications récentes
Hi
@Juan
I make your recommendation w/out success.

@Neil

So I would recommend that you try and identify which component is trying to do that. It would be reasonable for UserImpl to get serialized if it was in a @ViewScoped managed-bean in a cluster, but it should never be part of the value contained in the javax.faces.ViewState hidden field.

I don't understand what you mean by this, but I put here the code generate the error, and you should see if is there any thing strange .
1- The views :
Instrument-list.xhtml

<p:datatable id="dataTable" var="instrument" value="#{instrumentBean.instruments}" paginator="true" rows="20" paginatorposition="bottom" paginatortemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsperpagetemplate="10,20,30" selection="#{instrumentBean.selectedInstruments}" rowkey="#{instrument.instrumentId}" widgetvar="instrumentDataTable" filteredvalue="#{instrumentBean.filtredInstruments}">
			
					<p:column selectionMode="multiple" style="width:2%" />
					
					<p:column sortby="#{instrument.instrumentName}" filterby="#{instrument.instrumentName}">
						<f:facet name="header">
							<h:outputtext value="#{i18n['inst_list_label1']}" />
						</f:facet>
						<h:outputtext value="#{instrument.instrumentName}" />
					</p:column>
			
					<p:column sortby="#{instrument.instrumentSerialNbre}" filterby="#{instrument.instrumentSerialNbre}">
						<f:facet name="header">
							<h:outputtext value="#{i18n['inst_list_label2']}" />
						</f:facet>
						<h:outputtext value="#{instrument.instrumentSerialNbre}" />
					</p:column>
			
					<p:column filterby="#{instrument.brand}" filterstyle="width:80%">
						<f:facet name="header">
							<h:outputtext value="#{i18n['inst_list_label3']}" />
						</f:facet>
						<h:outputtext value="#{instrument.brand}" />
					</p:column>
			
				
					<p:column filterby="#{instrument.organizationName}">
						<f:facet name="header">
							<h:outputtext value="#{i18n['inst_list_label7']}" />
						</f:facet>
						<h:outputtext value="#{instrument.organizationName}" />
							
					</p:column>
					<p:column filterby="#{instrument.installDate}">
						<f:facet name="header">
							<h:outputtext value="#{i18n['inst_list_label6']}" />
						</f:facet>
						<h:outputtext value="#{instrument.installDate}">
							<f:convertdatetime pattern="dd/MM/yyyy" />
						</h:outputtext>
					</p:column>
					<p:column sortby="#{instrument.operated}" filterby="#{instrument.operated}" filteroptions="#{instrumentBean.statusOptions}" filtermatchmode="exact" filterstyle="width:80%">
						<f:facet name="header">
							<h:outputtext value="#{i18n['inst_list_label8']}" />
						</f:facet>
						<p:commandlink actionlistener="#{instrumentBean.failInstrument(instrument)}" update=":frm:dataTable">
							<h:graphicimage value="/web/img/bullet-green.png" rendered="#{instrument.operated}"></h:graphicimage>
							<h:graphicimage value="/web/img/bullet-red.png" rendered="#{!instrument.operated}"></h:graphicimage>
						</p:commandlink>
					</p:column>
					<p:column sortby="#{instrument.activated}" filterby="#{instrument.activated}" filteroptions="#{instrumentBean.statusOptions}" filtermatchmode="exact" filterstyle="width:80%">
						<f:facet name="header">
							<h:outputtext value="#{i18n['inst_list_label5']}" />
						</f:facet>
						<p:commandlink actionlistener="#{instrumentBean.activateInstrument(instrument)}" update=":frm:dataTable">
							<h:graphicimage value="/web/img/bullet-green.png" rendered="#{instrument.activated}"></h:graphicimage>
							<h:graphicimage value="/web/img/bullet-red.png" rendered="#{!instrument.activated}"></h:graphicimage>
						</p:commandlink>
					</p:column>
					<p:column>
						<f:facet name="header">
							<h:outputtext value="#{i18n['share_label1']}" />
						</f:facet>
						
						<p:menubutton value="#{i18n['share_label1']}">
							<p:menuitem value="#{i18n['share_label2']}" action="#{instrumentBean.editInstAction(instrument.instrumentId)}" id="editInstrumentMenu" icon="ui-icon-pencil">							
								
							</p:menuitem>
							<p:menuitem value="#{i18n['share_label3']}" oncomplete="deleteDlg.show();" id="deleteInstrumentMenu" icon="ui-icon-trash">
								<f:setpropertyactionlistener value="#{instrument}" target="#{instrumentBean.instrument}"></f:setpropertyactionlistener>
							</p:menuitem>
						</p:menubutton>
					</p:column>
					
					
				</p:datatable>


instrument-add.xhtml

<h:form id="form" enctype="multipart/form-data" prependid="false">
		
		<!-- ############# Form to Edit/Add  #################-->
		 
		<h:panelgrid id="id_gen" columns="2" cellpadding="10"> 
		   
		    	<h:inputhidden value="#{instrumentBean.instrument.instrumentId}" />
				<p:panelgrid columns="2" styleclass="ui-panelgrid-td">
					
					<h:panelgroup>
						
						
						
						<div class="ui-label">
							<span><h:outputlabel for="select_2" value="#{i18n['inst_add_zon8']}" /></span>
							<h:selectonemenu id="select_2" value="#{instrumentBean.instrument.departementId}" style="width:165px;">
								<f:selectitem itemLabel="Select one" />
								<f:selectitems value="#{instrumentBean.departments}" var="dep" itemValue="#{dep.organizationId}" itemLabel="#{dep.name}" />
							</h:selectonemenu>
						</div>
					</h:panelgroup>
			
			
					<f:facet name="footer">
						<h:panelgroup style="display:block; text-align:left">
							<p:commandbutton id="save" value="#{i18n['share_label4']}" action="#{instrumentBean.saveInstAction}" icon="ui-icon-check" />
							<p:commandbutton id="cancel" value="#{i18n['btn.cancel']}" action="instrument" icon="ui-icon-cancel" />
						</h:panelgroup>
					</f:facet>
				</p:panelgrid>
			
    	</h:panelgrid> 
		
		</h:form>


2- Beans :
InstrumentBean.java

/**
 * @author horri
 * 
 */
@ManagedBean
@ViewScoped
public class InstrumentBean implements Serializable {

    private static final long serialVersionUID = -4330385764481041376L;
    private static final Logger logger = LoggerFactory.getLogger(InstrumentBean.class);
    private List<instrument> instruments;
    private Instrument instrument = new InstrumentImpl();
    private Instrument[] selectedInstruments;
   // private DualListModel<supplier> suppliers;
    private List<instrument> filtredInstruments;
    // private TreeNode treeNode;
    // private TreeNode selectedNode;
    private List<organization> departments;
    protected LiferayFacesContext facesContext = LiferayFacesContext.getInstance();
    protected InstrumentDataModel dataModel;
    // protected FacesContext context = FacesContext.getCurrentInstance();
    protected boolean showMessage = false;
    protected SelectItem[] statusOptions;

    // @ManagedProperty(value = "#{param.instrumentId}")
    // private String instrumentId;

    //
    // @ManagedProperty(value = "#{internalMaintenanceBean}")
    // private InternalMaintenanceBean internalMaintenanceBean;

    public InstrumentBean() {
	this.statusOptions = this.createFilterOptions();
	this.dataModel = new InstrumentDataModel(this.getInstruments());
    }

    private SelectItem[] createFilterOptions() {
	SelectItem[] options = new SelectItem[3];

	options[0] = new SelectItem("", "Tout");
	options[1] = new SelectItem("true", "Activé");
	options[2] = new SelectItem("false", "Désactivé");

	return options;
    }

    // ////////////////////////////////////
    // GETTER/SETTER
    // ////////////////////////////////////
    public InstrumentDataModel getDataModel() {
	return this.dataModel;
    }

    /**
     * @return the instruments
     */
    public List<instrument> getInstruments() {
	if (this.instruments == null)
	    try {
		this.instruments = new ArrayList<instrument>();
		for (Instrument s : InstrumentLocalServiceUtil.getInstruments(LiferayFacesContext.getInstance().getCompanyId()))
		    this.instruments.add(s);
	    } catch (SystemException e) {
		logger.error(e.getMessage(), e);
		LiferayFacesContext.getInstance().addGlobalUnexpectedErrorMessage();
	    }
	return this.instruments;
    }

    /**
     * @param instruments
     *            the instruments to set
     */
    public void setInstruments(List<instrument> instruments) {
	this.instruments = instruments;
    }

    /**
     * @return the instrument
     */
    public Instrument getInstrument() {
	Instrument inst = (Instrument) LiferayFacesContext.getInstance().getPortletSession().getAttribute("instrument");
	if ((inst != null) &amp;&amp; (inst.getInstrumentId() != 0)
		&amp;&amp; ((this.instrument == null) || ((this.instrument != null) &amp;&amp; (this.instrument.getInstrumentId() == 0))))
	    this.instrument = inst;
	return this.instrument;
    }

    /**
     * @param instrument
     *            the instrument to set
     */
    public void setInstrument(Instrument instrument) {
	this.instrument = instrument;
    }

    public List<instrument> getFiltredInstruments() {
	return this.filtredInstruments;
    }

    public void setFiltredInstruments(List<instrument> filtredInstruments) {
	this.filtredInstruments = filtredInstruments;
    }

    /**
     * @return the selectedInstruments
     */
    public Instrument[] getSelectedInstruments() {
	return this.selectedInstruments;
    }

    /**
     * @param selectedInstruments
     *            the selectedInstruments to set
     */
    public void setSelectedInstruments(Instrument[] selectedInstruments) {
	this.selectedInstruments = selectedInstruments;
    }

    public boolean isShowMessage() {
	return this.showMessage;
    }

    public void setShowMessage(boolean showMessage) {
	this.showMessage = showMessage;
    }

    /**
     * @return the statusOptions
     */
    public SelectItem[] getStatusOptions() {
	return this.statusOptions;
    }

    /**
     * @param statusOptions
     *            the statusOptions to set
     */
    public void setStatusOptions(SelectItem[] statusOptions) {
	this.statusOptions = statusOptions;
    }

    /**
     * @return the departments
     */
    public List<organization> getDepartments() {
	if (this.departments == null)
	    try {
		this.departments = OrganizationLocalServiceUtil.getOrganizations(this.facesContext.getCompanyId(), 0);
	    } catch (SystemException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	    }
	return this.departments;
    }

    /**
     * @param departments
     *            the departments to set
     */
    public void setDepartments(List<organization> departments) {
	this.departments = departments;
    }

    /**
     * 
     * @param actionEvent
     */
    public String editInstAction(Long instrumentId) {
	try {
	    this.instrument = InstrumentLocalServiceUtil.getInstrument(instrumentId);
	    if (this.instrument == null) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("could-not-load-the-instrument"));
		this.instrument = new InstrumentImpl();
	    }

	    LiferayFacesContext.getInstance().getPortletSession().setAttribute("instrument", this.instrument);
	} catch (PortalException e) {
	    logger.error("", e);
	    FacesContext.getCurrentInstance().addMessage(null,
		    new FacesMessage(FacesMessage.SEVERITY_ERROR, "could-not-load-the-instrument", ""));
	} catch (SystemException e) {
	    logger.error("", e);
	    FacesContext.getCurrentInstance().addMessage(null,
		    new FacesMessage(FacesMessage.SEVERITY_ERROR, "could-not-load-the-instrument", ""));
	}
	return "instrument-add";
    }

    /**
     * delete a instrument
     * 
     * @param actionEvent
     */
    public void deleteInstrument() {
	try {
	    if (this.instrument.getInstrumentId() == 0)
		return;
	    this.instrument = InstrumentLocalServiceUtil.getInstrument(this.instrument.getInstrumentId());
	    this.instrument.setDeleted(true);
	    InstrumentLocalServiceUtil.updateInstrument(this.instrument);
	    this.getInstruments().remove(this.instrument);
	    this.updateModel();
	    FacesContext.getCurrentInstance().addMessage(null,
		    new FacesMessage(FacesMessage.SEVERITY_INFO, "instrument-deleted-successfully", "delete "));

	} catch (SystemException e) {
	    logger.error("an-error-occured-when-deleting-the-instrument", e);
	    FacesContext.getCurrentInstance().addMessage(null,
		    new FacesMessage(FacesMessage.SEVERITY_ERROR, "an-error-occured-when-deleting-the-instrument", "delete "));
	} catch (PortalException e) {
	    logger.error("an-error-occured-when-deleting-the-instrument", e);
	    FacesContext.getCurrentInstance().addMessage(null,
		    new FacesMessage(FacesMessage.SEVERITY_ERROR, "an-error-occured-when-deleting-the-instrument", "delete "));
	}

    }

    public void activateInstrument(Instrument s) {
	FacesMessage msg = null;
	try {
	    boolean actualSatus = s.getActivated();
	    s.setActivated(!actualSatus);
	    InstrumentLocalServiceUtil.updateInstrument(s);
	    msg = new FacesMessage("instrument-activated-successffully");
	    LiferayFacesContext.getInstance().addMessage(null, msg);
	    this.showMessage = true;
	} catch (SystemException e) {
	    msg = new FacesMessage("an-error-occured-when-activating-the-instrument");
	    logger.error("an-error-occured-when-activating-the-instrument", e);
	    LiferayFacesContext.getInstance().addMessage(null, msg);
	}
    }

    public void failInstrument(Instrument s) {
	FacesMessage msg = null;
	try {
	    boolean actualSatus = s.getOperated();
	    s.setOperated(!actualSatus);
	    InstrumentLocalServiceUtil.updateInstrument(s);
	    msg = new FacesMessage("instrument-updated-successffully");
	    LiferayFacesContext.getInstance().addMessage(null, msg);
	    this.showMessage = true;
	} catch (SystemException e) {
	    msg = new FacesMessage("an-error-occured-when-updating-the-instrument");
	    logger.error("an-error-occured-when-updating-the-instrument", e);
	    LiferayFacesContext.getInstance().addMessage(null, msg);
	}
    }

    public void cancel() {
	LiferayFacesContext.getInstance().getPortletSession().removeAttribute("instrument");
	this.instrument = new InstrumentImpl();
    }

    public void deleteInstruments() {
	if (this.selectedInstruments != null)
	    try {
		for (Instrument instrument : this.selectedInstruments) {
		    instrument.setDeleted(true);
		    Instrument s = InstrumentLocalServiceUtil.updateInstrument(instrument);
		    this.getInstruments().remove(s);
		}
		this.updateModel();
		FacesContext.getCurrentInstance().addMessage(null,
			new FacesMessage(FacesMessage.SEVERITY_INFO, "instrument-deleted-successfully", "delete "));

	    } catch (SystemException e) {
		logger.error("an-error-occured-when-deleting-the-instrument", e);
		FacesContext.getCurrentInstance()
			.addMessage(
				null,
				new FacesMessage(FacesMessage.SEVERITY_ERROR, "an-error-occured-when-deleting-the-instrument",
					"delete "));
	    }
    }

    public void updateModel() {
	this.getDataModel().setWrappedData(this.getInstruments());
    }

    public String newInstrument() {
	LiferayFacesContext.getInstance().getPortletSession().removeAttribute("instrument");
	return "inst-add";
    }
}

</organization></organization></instrument></instrument></instrument></instrument></instrument></organization></instrument></supplier></instrument>


The error is generated when I click on the Save/Cancel buttons in the instrument-add.xhtml file

Thanks
thumbnail
Neil Griffin, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

Liferay Legend Publications: 2655 Date d'inscription: 27/07/05 Publications récentes
Hi Khalid,

Thanks for posting the code. I took a close look at the code and the only thing that I can think of is that the PrimeFaces p:dataTable is saving the state of the current row. I looked at the org/primefaces/component/api/UIData.java class and I only see special state saving when the row has the ability to be edited with an inline editor.

We are going to try some experiments with the primefaces3-users-portlet to see if we can reproduce this error. If you are able to attach a complete portlet project (maven would be easiest) that would be great.

Thanks,

Neil
khalid horri, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

New Member Publications: 7 Date d'inscription: 01/11/10 Publications récentes
Hi,
I think the source of this problem comes from a configuration in the web.xml, So when I remove this

<context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>

the error go away

Thanks
thumbnail
Neil Griffin, modifié il y a 10 années.

RE: ClassNotFoundException UserImpl with @viewState

Liferay Legend Publications: 2655 Date d'inscription: 27/07/05 Publications récentes
Hi Khalid,

I'm glad that the error is gone and that things are working now. emoticon However I am still concerned about the instance of UserImpl.java being present in the javax.faces.ViewState (which is now kept in-memory in your server session rather than being passed back and forth from browser to server in a hidden field).

If at some point you find time in your schedule to find out why the instance of UserImpl is being stored in javax.faces.ViewState, I'd be interested to know the information you find out.

Kind Regards,

Neil