title: Error StandardWrapperValve[Faces Servlet]:PWC1406: Servlet.service() for servlet Faces Servlet threw exception
body: <p>In my managedBean if I change my scope from <code>@RequestScoped</code> to <code>@ViewScoped</code>, I am getting the following error stack. How can I resolve this? I could see the results in page when I run my application though. </p>
  
  <p>I am running on glassfish 3 with Mojarra 2.1.3 (FCS b02)</p>
  
  <p>Regards</p>
  
  <pre><code>    WARNING: StandardWrapperValve[Faces Servlet]: 
  PWC1406: Servlet.service() for servlet Faces Servlet threw exception
      java.io.NotSerializableException: bean
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
          at java.util.ArrayList.writeObject(ArrayList.java:570)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
          at java.util.HashMap.writeObject(HashMap.java:1001)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
          at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
          at java.util.HashMap.writeObject(HashMap.java:1001)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
          at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:325)
          at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:173)
          at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122)
          at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166)
          at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
          at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)
          at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
          at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
          at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
          at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
          at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
          at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
          at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
          at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
          at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
          at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
          at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
          at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
          at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
          at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
          at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
          at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
          at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
          at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
          at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
          at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
          at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
          at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
          at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
          at java.lang.Thread.run(Thread.java:662)
  </code></pre>
  
  <p>Update 1</p>
  
  <pre><code>public class SchedulesBean implements Serializable {
  
      Logger logger = Logger.getLogger(this.getClass().getName().toString());
      CommonMethods commonMethods = new CommonMethods();
      private ScheduleDAO scheduleDAO = DatabaseConnection
              .getInstance(commonMethods.getDSName()).geScheduleDAO();
      List&lt;Schedule&gt; beanValues = new ArrayList&lt;Schedule&gt;();
      private Schedule schedule;
  
      private Schedule selectedRow  = new Schedule();
  
      public SchedulesBean() {
  
          this.getSchedules();                
      }
  
      public Schedule getSchedule() {
          return schedule;
      }
  
      public void setSchedule(Schedule schedule) {
          this.schedule = schedule;
      }
  
      public void getSchedules() {
  
          try {
              beanValues = scheduleDAO.loadSchedules();
  
          } catch (Exception e) {
              // TODO: handle exception
          }
  
      }
  
      public void selectedRow(SelectEvent event) {
          selectedRow = (Schedule) event.getObject();
          logger.info("selectedRow "+selectedRow);
      }
  </code></pre>