title: Cannot resolve Struts2 NotSerializableException even after update to 2.3.12
body: <p>I currently doing a work with struts2 and this error suddenly appears. Some cache of my objects is not working.</p>
  
  <p>I use JBoss 5 and struts2 : 
  struts2-core-2.3.4.1.jar
  xwork-core-2.3.4.1.jar</p>
  
  <p>The stack trace is here : <a href="http://pastebin.com/QpPV01wX" rel="nofollow">http://pastebin.com/QpPV01wX</a></p>
  
  <p>this is some snippet :</p>
  
  <pre><code>java.io.NotSerializableException: com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
          at com.opensymphony.xwork2.inject.util.ReferenceMap.writeObject(ReferenceMap.java:595)
          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.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.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.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.GeneratedMethodAccessor413.invoke(Unknown Source)
          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 java.util.HashMap.writeObject(HashMap.java:1001)
          at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source)
          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 org.jboss.ha.framework.server.SimpleCachableMarshalledValue.serialize(SimpleCachableMarshalledValue.java:271)
          at  
  </code></pre>
  
  <p>I would love suggestions or might be something wrong I did. </p>
  
  <p>Thank you very much in advance,</p>
  
  <p>** UPDATED</p>
  
  <p>I tried to remove token session interceptor that I used in my struts.xml and the problem is gone. Still, I dont know why it went wrong if I use token. At least in my case, it is solved by removing token session interceptor.</p>
  
  <p>I remove following line on struts.xml</p>
  
  <pre><code>&lt;interceptor-ref name="tokenSession"&gt;
    &lt;param name="excludeMethods"&gt;list&lt;/param&gt;
    &lt;param name="includeMethods"&gt;save,update&lt;/param&gt;
  &lt;/interceptor-ref&gt;
  </code></pre>