Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中将ResultScanner写入文件时出错(序列化问题)_Java_Serialization_Hbase - Fatal编程技术网

在java中将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

当我想将ResultScanner对象写入磁盘时,我会遇到以下错误:

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新手,我想不出来!请你再解释一下好吗?如果可能的话,举个例子。有成千上万篇关于定制序列化的文章。我给了你一个想法(和关键词),在网上找到它是非常简单的。