在 Java 中添加边缘后,我收到以下错误:
Janusgraph 版本为 0.3.0,Tinkerpop 版本为 3.3.3,Janusgraph 序列化配置如下:
大约在同一时间,服务器上记录了以下错误并且似乎是相关的:
据我所知,我的鸭子在匹配的序列化器版本方面排成一列,但显然一定错过了一些东西。非常感谢任何帮助!
代码可以在这里看到:
https://gist.github.com/ptclarke/45472fa5c268a6e8441e4c35615194aa
最佳答案
我认为您需要在客户端注册 JanusGraphIoRegistry
:
GryoMapper.Builder builder = GryoMapper.build().
addRegistry(JanusGraphIoRegistry.getInstance());
GryoMessageSerializerV3d0 serializer = new GryoMessageSerializerV3d0(builder);
Cluster cluster = Cluster.build().
addContactPoint(host).
port(port).
serializer(serializer).
create();
作为对您的代码的一些额外建议。考虑避免大量这样的小更新:
public void updateVertex(Vertex v, Map<Object, Object> propertyMap) {
for(Entry<Object, Object> e : propertyMap.entrySet()) {
g.V(v).property(e.getKey(), e.getValue()).next();
}
}
而是这样做:
public void updateVertex(Vertex v, Map<Object, Object> propertyMap) {
GraphTraversal<Vertex,Vertex> t = g.V(v);
for(Entry<Object, Object> e : propertyMap.entrySet()) {
t = t.property(e.getKey(), e.getValue());
}
t.iterate();
}
您还可以简化“添加边缘”代码:
public Edge addEdge(String label, Vertex from, Vertex to) {
return g.V(from).addE(label).to(to).next();
}
关于Janusgraph 0.3.0 Tinkerpop 3.3.3 java - 使用 GryoMessageSerializerV3d0 添加 Edge 后出现序列化错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53202745/