在java中将ResultScanner写入文件时出错(序列化问题)
当我想将ResultScanner对象写入磁盘时,我会遇到以下错误:在java中将ResultScanner写入文件时出错(序列化问题),java,serialization,hbase,Java,Serialization,Hbase,当我想将ResultScanner对象写入磁盘时,我会遇到以下错误: Exception in thread "main" java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.hadoop.hbase.client.ClientScanner at java.io.ObjectInputStream.readObject0(ObjectInputStrea
Exception in thread "main" java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.hadoop.hbase.client.ClientScanner
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at cache1.CacheManager.getCache(CacheManager.java:112)
at cache1.Cache1.main(Cache1.java:43)
Caused by: java.io.NotSerializableException: org.apache.hadoop.hbase.client.ClientScanner
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at cache1.CacheManager.putCache(CacheManager.java:102)
at cache1.Cache1.main(Cache1.java:41)
据我所知,问题在于ResultScanner(ClientScanner)不可序列化。由于我没有访问此类的权限,如何解决此序列化问题?或者是否有其他方法将此对象存储到文件中?不幸的是,您需要自己执行序列化,因为拥有可序列化接口JVM无法为您执行此操作 扩展此类时,可以实现readObject和writeObject,并通过自己存储所有状态来序列化它(也可以读取:)
我希望这能有所帮助。谢谢,但由于我是java新手,我想不出来!请你再解释一下好吗?如果可能的话,举个例子。有成千上万篇关于定制序列化的文章。我给了你一个想法(和关键词),在网上找到它是非常简单的。