-
1. Re: HtmlToolBar can not be saved in session: Non-serializabl
nbelaevski Jan 8, 2008 1:01 PM (in response to mores)What's your application server?
-
2. Re: HtmlToolBar can not be saved in session: Non-serializabl
mores Jan 8, 2008 6:02 PM (in response to mores)I am currently running this under tomcat 5.5 with facelets so I can use JSF RI 1.2
-
3. Re: HtmlToolBar can not be saved in session: Non-serializabl
nbelaevski Jan 8, 2008 6:44 PM (in response to mores)I guess the problem is not in the component itself, but in the value of some attribute, that is not Serializable. Could you please provide page & beans code?
-
4. Re: HtmlToolBar can not be saved in session: Non-serializabl
mores Jan 9, 2008 10:54 AM (in response to mores)I have tried to make the code as small as possible and still exposes the stack trace
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition template="/WEB-INF/layout/layout.xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <ui:define name="header">Header</ui:define> <ui:define name="content"> <h:form> <rich:toolBar binding="#{richmenu.myBar}" /> </h:form> </ui:define> </ui:composition> public class RichMenu { //private static org.slf4j.Logger _log = org.slf4j.LoggerFactory.getLogger( RichMenu.class ); public void setMyBar( org.richfaces.component.html.HtmlToolBar bar ) { //_log.trace( "Why is this needed ?" ); } public org.richfaces.component.html.HtmlToolBar getMyBar() { //_log.trace( "Creating bar - START" ); org.richfaces.component.html.HtmlToolBar bar = new org.richfaces.component.html.HtmlToolBar(); bar.setItemSeparator( "line" ); //_log.trace( "Creating bar - END" ); return( bar ); } /* public void onItemClick( javax.faces.event.ActionEvent event ) { Object obj = event.getSource(); if( obj instanceof org.richfaces.component.html.HtmlMenuItem ) { org.richfaces.component.html.HtmlMenuItem item = (org.richfaces.component.html.HtmlMenuItem)obj; if( item != null ) { _log.trace( "Clicked On: " + item.getValue().toString() ); } } else { _log.trace( "unknown component: " + obj ); } } */ } 2008-01-09 15:48:33,262 ERROR [[Faces Servlet]:250] Servlet.service() for servlet Faces Servlet threw exception java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1265) at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1243) at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:130) at com.sun.faces.context.SessionMap.put(ExternalContextImpl.java:984) at com.sun.faces.mgbean.BeanManager$ScopeManager$SessionScopeHandler.handle(BeanManager.java:443) at com.sun.faces.mgbean.BeanManager$ScopeManager.pushToScope(BeanManager.java:418) at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:370) at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:222) at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:88) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:135) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:73) at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65) at com.sun.el.parser.AstValue.getValue(AstValue.java:106) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:240) at com.sun.facelets.tag.jsf.ComponentHandler.createComponent(ComponentHandler.java:224) at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:139) at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314) at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169) at com.sun.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:64) at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:128) at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:312) at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:282) at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:109) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:144) at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25) at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95) at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:509) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:552) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at net.sourceforge.jams.JAMSFilter.doFilter(JAMSFilter.java:100) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:542) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:619)
-
5. Re: HtmlToolBar can not be saved in session: Non-serializabl
mores Jan 11, 2008 8:59 AM (in response to mores)Nick, can you reproduce this or do I need to supply more details ?
-
6. Re: HtmlToolBar can not be saved in session: Non-serializabl
mores Jan 17, 2008 9:31 AM (in response to mores)Should I open up a bug report on this ?
-
7. Re: HtmlToolBar can not be saved in session: Non-serializabl
mores Jan 22, 2008 12:08 PM (in response to mores)The org.richfaces.component.html.HtmlToolBar cannot be saved in the session, but it CAN be saved in a cache.
By using OSCache my menu build time has decreased from 2 seconds to 2 miliseconds ! -
8. Re: HtmlToolBar can not be saved in session: Non-serializabl
mores Jun 3, 2008 12:46 PM (in response to mores)I think this error is because < distributable /> is in the web.xml.
I am now seeing similar errors using fileUpload when distributable is turned on. -
9. FIXED: HtmlToolBar can not be saved in session: Non-serializ
mores Jun 3, 2008 1:24 PM (in response to mores)public class RichMenu
should become
public class RichMenu implements java.io.Serializable