[Building Sakai] NotSerializableException Error

Steve Swinsburg steve.swinsburg at gmail.com
Wed Nov 27 19:20:36 PST 2013


What other classes do you use in MyObjectVO ?


On Thu, Nov 28, 2013 at 12:22 AM, Claudia Roberta <claudia.icmc at gmail.com>wrote:

> Hi Guys,
>
> I added in SelectItem value an object, but the following error occurs:
> java.io.
>
> NotSerializableException.
>
> SelectItem item = new SelectItem();
>
>  *item.setValue(myObjectVO);*
>
>
> MyObjectVO implements Serializable.
>
>
> Any Idea?
>
>
>
> Thanks,
>
>
> Claudia
>
>
>
>
>
> More details:
>
>
>      *MyObjectVO.java*
>
>         public class MyObjectVO implements Serializable {
>
>
>                private static final long serialVersionUID = 1L;
>
> ...
>
>
>
> *Web.xml: *
>
> <context-param>
>
>
> <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
>
>                                <param-value>client</param-value>
>
>                 </context-param>
>
>
>
>                 <context-param>
>
>
> <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
>
>                                <param-value>false</param-value>
>
>                 </context-param>
>
>
>
>                 <context-param>
>
>
> <param-name>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</param-name>
>
>                                  <param-value>false</param-value>
>
>                 </context-param>
>
>
>
> <context-param>
>
>
> <param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
>
>
> <param-value>org.apache.myfaces.component.html.util.StreamingAddResource</param-value>
>
>                  </context-param>
>
>
>
> ·         *SelectMyObject.jsp:*
>
>
>
> <t:selectManyCheckbox value="#{MyBean. selectedMyObjects }"
> layoutWidth="3" *converter="ObjectConverter"*>
>
>                      <f:selectItems value="#{ MyBean.mySelectedObjects}"/>
>
> </t:selectManyCheckbox>
>
>
>
> ·         *Faces-config.xml:*
>
>
>
> <converter>
>
>
> <converter-id>ObjectConverter</converter-id>
>
>
> <converter-class>br.Mytool.util.ObjectConverter</converter-class>
>
>                 </converter>
>
>
>
> ·         *MyBackingBean.java:*
>
>
>
> private List<MyObjectVO> selectedMyObjects = new ArrayList< MyObjectVO >();
>
>
>
>                 public List< MyObjectVO > getSelectedMyObjects () {
>
>                                return selectedMyObjects;
>
>                 }
>
>                 public void setSelectedMyObjects (List< MyObjectVO >
> electedMyObjects) {
>
>                                this. selectedMyObjects= selectedMyObjects;
>
>                 }
>
>
>
>               private List<SelectItem> mySelectedObjects;
>
>
>
>                 public List<SelectItem> getMySelectedObjects () {
>
>                                return mySelectedObjects;
>
>                 }
>
>
>
>                 public void setMySelectedObjects (List<SelectItem>
> mySelectedObjects) {
>
>                                this.mySelectedObjects = mySelectedObjects;
>
>                 }
>
>
>
>              public String selectMyObject(){
>
>
>
>                             selectedMyObjects = new ArrayList< MyObjectVO
> >();
>
>
>
>                                mySelectedObjects = new
> ArrayList<SelectItem>();
>
>
>
>                                for (Iterator iterator =
> listAllMyObjects.iterator(); iterator.hasNext();) {
>
>
>
>                                        MyObjectVO myObjectVO =
> (MyObjectVO) iterator.next();
>
>
>
>                                        if (myObjectVO!= null) {
>
>
>
>
>                                                SelectItem item = new
> SelectItem();
>
>
> *item.setValue(myObjectVO);*
>
>
> item.setLabel(myObjectVO.getName());
>
>
>
>
> mySelectedObjects.add(item);
>
>                                          }
>
>
>                                }
>
>                                return “selectMyObjectPage”
>
>                 }
>
>
>
> ·         *ObjectConverter.java*
>
>
>
> import java.util.List;
>
> import java.util.Map;
>
>
>
> import javax.faces.component.UIComponent;
>
> import javax.faces.component.UISelectItems;
>
> import javax.faces.context.FacesContext;
>
> import javax.faces.convert.Converter;
>
> import javax.swing.text.html.Option;
>
>
>
> public class ObjectConverter  implements Converter {
>
>
>
>         public Object getAsObject(FacesContext ctx, UIComponent
> component, String value) {
>
>             if (value != null) {
>
>                 return this.getAttributesFrom(component).get(value);
>
>             }
>
>             return null;
>
>         }
>
>
>
>         public String getAsString(FacesContext ctx, UIComponent
> component, Object value) {
>
>
>
>             if (value != null  && !"".equals(value)) {
>
>
>
>                 MyObjectVO entity = (MyObjectVO) value;
>
>
>
>                 // adiciona item como atributo do componente
>
>                 this.addAttribute(component, entity);
>
>
>
>                 Long codigo = entity.getIdMyObjectVO ();
>
>                 if (codigo != null) {
>
>                     return String.valueOf(*codigo*);
>
>                 }
>
>             }
>
>
>
>             return (String) value;
>
>         }
>
>
>
>         protected void addAttribute(UIComponent component, MyObjectVO o) {
>
>
>             String key = o. getIdMyObjectVOtoString();
>
>             this.getAttributesFrom(component).put(key, o);
>
>         }
>
>
>
>         protected Map<String, Object> getAttributesFrom(UIComponent
> component) {
>
>             return component.getAttributes();
>
>         }
>
>
>
> }
>
>
>
> *Error:*
>
>
> org.sakaiproject.portal.api.PortalHandlerException:
> org.sakaiproject.tool.api.ToolException: javax.servlet.ServletException:
> javax.faces.FacesException: java.io.NotSerializableException:
> br.Mytool.model. MyObjectVO
>
>     at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:768)
>
> caused by: org.sakaiproject.tool.api.ToolException:
> javax.servlet.ServletException: javax.faces.FacesException:
> java.io.NotSerializableException: br.Mytool.model. MyObjectVO
>
>     at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1216)
>
> caused by: javax.servlet.ServletException: javax.faces.FacesException:
> java.io.NotSerializableException: br.Mytool.model. MyObjectVO
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
> caused by: javax.faces.FacesException: javax.faces.FacesException:
> java.io.NotSerializableException: br.Mytool.model. MyObjectVO
>
>     at
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
>
> caused by: org.apache.jasper.JasperException: javax.faces.FacesException:
> java.io.NotSerializableException: br br.Mytool.model. MyObjectVO
>
>     at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:429)
>
> caused by: javax.faces.FacesException: java.io.NotSerializableException:
> br.Mytool.model. MyObjectVO
>
>     at
> org.apache.myfaces.shared_impl.util.StateUtils.construct(StateUtils.java:154)
>
> caused by: java.io.NotSerializableException: br.Mytool.model. MyObjectVO
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
>
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>     at java.util.HashMap.writeObject(HashMap.java:1039)
>
>     at sun.reflect.GeneratedMethodAccessor559.invoke(null:-1)
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>     at java.lang.reflect.Method.invoke(Method.java:592)
>
>     at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>
>     at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
>
>     at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>     at java.util.ArrayList.writeObject(ArrayList.java:569)
>
>     at sun.reflect.GeneratedMethodAccessor561.invoke(null:-1)
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>     at java.lang.reflect.Method.invoke(Method.java:592)
>
>     at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>
>     at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
>
>     at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>     at java.util.ArrayList.writeObject(ArrayList.java:569)
>
>     at sun.reflect.GeneratedMethodAccessor561.invoke(null:-1)
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>     at java.lang.reflect.Method.invoke(Method.java:592)
>
>     at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>
>     at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
>
>     at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>     at java.util.ArrayList.writeObject(ArrayList.java:569)
>
>     at sun.reflect.GeneratedMethodAccessor561.invoke(null:-1)
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>     at java.lang.reflect.Method.invoke(Method.java:592)
>
>     at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>
>     at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
>
>     at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>     at java.util.ArrayList.writeObject(ArrayList.java:569)
>
>     at sun.reflect.GeneratedMethodAccessor561.invoke(null:-1)
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>     at java.lang.reflect.Method.invoke(Method.java:592)
>
>     at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>
>     at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
>
>     at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>     at java.util.ArrayList.writeObject(ArrayList.java:569)
>
>     at sun.reflect.GeneratedMethodAccessor561.invoke(null:-1)
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>     at java.lang.reflect.Method.invoke(Method.java:592)
>
>     at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>
>     at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
>
>     at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
>
>     at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
>
>     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>     at
> org.apache.myfaces.shared_impl.util.StateUtils.getAsByteArray(StateUtils.java:184)
>
>     at
> org.apache.myfaces.shared_impl.util.StateUtils.construct(StateUtils.java:154)
>
>     at
> org.apache.myfaces.renderkit.html.HtmlResponseStateManager.writeState(HtmlResponseStateManager.java:88)
>
>     at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.writeState(JspStateManagerImpl.java:398)
>
>     at
> org.apache.myfaces.taglib.core.ViewTag.doAfterBody(ViewTag.java:150)
>
>     at org.apache.jsp.
> SelectMyObject_jsp._jspx_meth_f_005fview_005f0(SelectMyObject _jsp.java:191)
>
>     at org.apache.jsp. SelectMyObject _jsp._jspService(SelectMyObject
> _jsp.java:132)
>
>     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>     at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
>
>     at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
>
>     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
>
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>
>     at
> org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
>
>     at
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
>
>     at
> org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:137)
>
>     at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
>
>     at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
>
>     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>     at
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:571)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>
>     at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
>
>     at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
>
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
>
>     at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>
>     at
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:486)
>
>     at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1216)
>
>     at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:195)
>
>     at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:94)
>
>     at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:768)
>
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>     at
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>     at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>     at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>
>     at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
>
>     at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
>
>     at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>
>     at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>
>     at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>
>     at
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>
>     at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
>     at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
>
>     at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>
>     at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>
>     at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>
>     at java.lang.Thread.run(Thread.java:595)
>
>
>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20131128/73d1c2af/attachment.html 


More information about the sakai-dev mailing list