java – 即使在更新到2.3.12之后也无法解析Struts2 NotSerializableException

前端之家收集整理的这篇文章主要介绍了java – 即使在更新到2.3.12之后也无法解析Struts2 NotSerializableException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我目前正在使用struts2进行工作,突然出现此错误.我的对象的某些缓存不起作用.

我使用JBoss 5和struts2:
Struts2的核心 – 2.3.4.1.jar
XWork的核心,2.3.4.1.jar

堆栈跟踪在这里:http://pastebin.com/QpPV01wX

这是一些片段:

  1. java.io.NotSerializableException: com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector
  2. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
  3. at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
  4. at com.opensymphony.xwork2.inject.util.ReferenceMap.writeObject(ReferenceMap.java:595)
  5. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  6. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  7. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  8. at java.lang.reflect.Method.invoke(Method.java:597)
  9. at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
  10. at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
  11. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
  12. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
  13. at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
  14. at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
  15. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
  16. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
  17. at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
  18. at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
  19. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
  20. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
  21. at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
  22. at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
  23. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
  24. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
  25. at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
  26. at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
  27. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
  28. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
  29. at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
  30. at java.util.HashMap.writeObject(HashMap.java:1001)
  31. at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source)
  32. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  33. at java.lang.reflect.Method.invoke(Method.java:597)
  34. at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
  35. at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
  36. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
  37. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
  38. at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
  39. at java.util.HashMap.writeObject(HashMap.java:1001)
  40. at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source)
  41. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  42. at java.lang.reflect.Method.invoke(Method.java:597)
  43. at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
  44. at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
  45. at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
  46. at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
  47. at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
  48. at org.jboss.ha.framework.server.SimpleCachableMarshalledValue.serialize(SimpleCachableMarshalledValue.java:271)
  49. at

我会喜欢建议,也可能是我做错了.

非常感谢你提前,

** 更新

我试图删除我在struts.xml中使用的令牌会话拦截器,问题就消失了.不过,如果我使用令牌,我不知道为什么会出错.至少在我的情况下,它是通过删除令牌会话拦截器来解决的.

我在struts.xml上删除了以下行

最佳答案
似乎您已将对象放入缓存或您的会话中未实现java.io.Serializable.

猜你在找的Java相关文章