精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-11-28
andye 写道 前几天我碰到同样的问题,应用场景和基本差不多,不过我是用Memcached做Session复制。
据我使用的经验,Memcached在反序列化同一个JVM对象时是没问题的,如果是跨JVM好像不可以(不知道有哪位大侠可以解决这个问题)。 我是用另一种办法解决的,但这种办法只是针对需要反序列化较少的对象。 我是先将对象转为json字符串(如阿里的fastjson),存入Memcached,然后在客户端将json字符串转为指定对象,就OK了。 供参考,呵呵! 正常情况是不存在那样的限制的,这个memcached用的就是java对象的序列化/反序列化 |
|
返回顶楼 | |
发表时间:2012-11-28
java_user 写道 andye 写道 前几天我碰到同样的问题,应用场景和基本差不多,不过我是用Memcached做Session复制。
据我使用的经验,Memcached在反序列化同一个JVM对象时是没问题的,如果是跨JVM好像不可以(不知道有哪位大侠可以解决这个问题)。 我是用另一种办法解决的,但这种办法只是针对需要反序列化较少的对象。 我是先将对象转为json字符串(如阿里的fastjson),存入Memcached,然后在客户端将json字符串转为指定对象,就OK了。 供参考,呵呵! 正常情况是不存在那样的限制的,这个memcached用的就是java对象的序列化/反序列化 我是用Memcached反序列化CXF生成客户端对象时失败的,具体: 在A系统中我把一实体(比如User,这个对象是序列化的)放入Memcached。 因为其他web系统要调用User的相关业务,所以用CXF在各个系统生成webservice客户端,相应的也webservice客户端的User实体,那这个时候我从memcached取user对象转为这个客户端的User实体就会失败。 不过也有可能是CXF问题 |
|
返回顶楼 | |
发表时间:2012-12-22
java序列化/反序列化的要求:
1、要序列化/放序列化的对象必须实现序列化接口 2、两个对象必须一样; 3、两个序列化/反序列化的对象的序列化ID值必须一样,即serialVersionUID属性的值必须一样; 上述任一一个条件不满足,都不能实现序列化/放序列化操作。 所以一般在需要序列化和反序列化操作时,一般是建议直接从已有的对象中copy过去,而不是自己建一个一样的对象,因为有可能不注意,以疏忽就把serialVersionUID的值设置为不一样了。 上述三点,第一第二点一般不会有问题,大家都知道,但是第三点很多人不太注意。也没有搞清楚,看着明明是一样的对象,但是发序列化操作时就是是败! |
|
返回顶楼 | |