混淆了如何处理NotSerializableException



我在社交网站上工作,使用JSF 2.2我有一些bean,在这些bean中注入了视图范围

有时在tomcat中我会遇到著名的NotSerializableException,我有一些问题:

1-使用空管理器禁用会话持久性的缺点如下:

<Context ... >
    <Manager pathname="" />
</Context>

何时使用这种方法?

2-如果我要实现Serializable接口,我是否应该使视图作用域(请求和会话bean呢?)只实现Serializableinterface,从而将注入的服务标记为瞬态?

3-bean是唯一应该实现Serializable的层,而服务和dao不应该实现吗?以及为服务或dao实现Serializable的缺点是什么?

请告知。

1-使用空管理器禁用会话持久性的缺点如下:

<Context ... >
    <Manager pathname="" />
</Context>

缺点是无法获得会话持久性。

何时使用这种方法?

当您不想要会话持久性时。

2-如果我要实现Serializable接口,我是否应该使视图作用域(请求和会话bean呢?)只实现Serializableinterface,从而将注入的服务标记为瞬态?

您需要使任何可以绑定到会话中的内容都是可序列化的,以及它的非静态非瞬态成员,等等,直到关闭为止。NotSerializableExceptions会告诉你什么时候错过了什么。

3-bean是唯一应该实现Serializable的层吗?服务和dao不应该实现

正确。序列化服务没有意义,DAO也是如此,所以它们在成为成员时需要是瞬态的。

以及为服务或dao实现Serializable的缺点是什么?

请参见上文。对于服务来说,这基本上是不可能的;对于DAO,您有一个主要的生存性问题。DAO应为极度瞬态,以及transient.

相关内容

  • 没有找到相关文章

最新更新