2014-10-03 35 views
1

我正在尝试使用SecureSocial与reactivemongo结合使用。但是,在缓存用户时遇到问题。在开发过程中,每次Play决定重新编译文件时,用户都会注销。我认为这是由于以下错误:为什么Play with ReactiveMongo报告由于java.io.NotSerializableException而导致磁盘写入失败:reactivemongo.bson.BSONObjectID

[error] n.s.e.s.d.DiskStorageFactory - Disk Write of f097d7b2db41b48eb28d73fffe4a0b7af0d5723fd5ea27c3f14c21d559c4f5b7448730955aaa95700df906ac38a4b6833de0dae859d957a368d3e5028208c5ba522ffd779ac8d9e439f2c7ec516dd4ddb0005fda0a4f5cd035c3eedec717807518b4dec5f1e6781ee55125a6ae33db50cba107bb73311078d50ee947bcd92033 failed: 
java.io.NotSerializableException: reactivemongo.bson.BSONObjectID 
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) ~[na:1.7.0_21] 
     at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) ~[na:1.7.0_21] 
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) ~[na:1.7.0_21] 
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) ~[na:1.7.0_21] 
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[na:1.7.0_21] 

我不知道如何解决这个问题。我期待BSONObjectId默认是可序列化的,因为它是一个案例类。任何提示?

回答

2

如果选中的BSONObjectID来源事实证明它实际上不是一个案例类,而不是序列化,直到10月2日当sgodbillon变为修正错误#144the source

直到那是释放,我会说你有三个选择:

  1. 与反应蒙戈的快照运行
  2. 与修补自定义生成运行(你让自己)
  3. 以某种方式改变你正在序列化的内容(例如使用json格式或类似的东西),这样你就不会真正序列化实例了BSONObjectID
相关问题