【问题标题】:ViewScope in managed bean throwing NotSerializableException: com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate托管 bean 中的 ViewScope 抛出 NotSerializableException:com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate
【发布时间】:2014-04-11 15:32:15
【问题描述】:

现在我面临以下问题:

我在我的托管 bean 中使用 @ViewScoped,但是当应用程序重新渲染时,JSF 会抛出以下异常:

Grave: Error Rendering View[/historico/reporteHistoricoComparativo.xhtml]
java.io.NotSerializableException: com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.HashMap.writeObject(HashMap.java:1133)
at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.HashMap.writeObject(HashMap.java:1133)
at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)

是的,我确实阅读了此处发布的所有问题,但没有给出明确的答案。是的,我确实在我的 JSF 页面中调用的所有托管 bean 中放置了实现 Serialiable。

异常记录了 EJBLocalObjectInvocationHandlerDelegatel,因此问题似乎出在托管 bean 中的 @EJB 属性上。在接口中我写了“extends Serializable”,在实现类中我写了“implements Serializable”。

有没有办法知道哪个类导致了异常?

我没有使用 Spring!

感谢您的帮助。

【问题讨论】:

  • 我将应用程序中的每个托管 bean 都标记为“实现可序列化”,但是异常仍然存在。此外,托管 bean 中的 EJB 被标记为有状态的,但是.....它仍然不起作用。

标签: java jsf jakarta-ee


【解决方案1】:

尝试检查您的 web.xml 以查看您是否启用了客户端保存,这与 this 的问题相同。

容器应该反序列化托管 bean 并注入 EJB 而不给出此异常,它也不应该序列化 EJB 属性。

【讨论】:

    猜你喜欢
    • 2012-06-08
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2012-03-24
    • 2016-07-09
    相关资源
    最近更新 更多