我试图将java.util.GregorianCalendar类添加到Apachetinkerpop3.3.3上的kryo序列化程序中。防止以下异常发生
Exception in thread "main" java.lang.IllegalArgumentException: Class is not registered: java.util.GregorianCalendar
Note: To register this class use: kryo.register(java.util.GregorianCalendar.class);
at org.apache.tinkerpop.shaded.kryo.Kryo.getRegistration(Kryo.java:484)
at org.apache.tinkerpop.gremlin.structure.io.gryo.AbstractGryoClassResolver.writeClass(AbstractGryoClassResolver.java:110)
at org.apache.tinkerpop.shaded.kryo.Kryo.writeClass(Kryo.java:514)
at org.apache.tinkerpop.shaded.kryo.Kryo.writeClassAndObject(Kryo.java:619)
at org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedKryoAdapter.writeClassAndObject(ShadedKryoAdapter.java:49)
at org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedKryoAdapter.writeClassAndObject(ShadedKryoAdapter.java:24)由于修补程序使用的是某种“阴影”的kryo版本,所以我不能简单地调用kryo.register()。到目前为止我试过
GryoMapper mapper =
GryoMapper.build().addCustom(java.util.GregorianCalendar.class).create();
List l = mapper.getRegisteredClasses();并能观察到java.util.GregorianCalendar已经注册。但是我不知道接下来该怎么做才能使用这个自定义映射器,我检查了javadocs并弄糊涂了,我还使用下面的代码编写了TinkerGraph实例来进行文件处理。任何帮助都将不胜感激。
this.graph.io(IoCore.gryo()).writeGraph(filePath);发布于 2018-05-29 10:59:15
我想,如果您有一个GryoMapper实例,那么我只需要像下面这样直接实例化GryoWriter:
File file = new File("C:/myfile.txt");
OutputStream fos = new FileOutputStream(file);
GryoMapper mapper = GryoMapper.build().addCustom(java.util.GregorianCalendar.class).create()
GryoWriter writer = GryoWriter.build().mapper(mapper).create()
writer.writeGraph(fos, graph)https://stackoverflow.com/questions/50574258
复制相似问题