Janus Graph Remote Graph NoSuchFieldError:V3_0错误

时间:2018-06-12 22:52:08

标签: serialization tinkerpop janusgraph gremlin-server

我遵循这个例子;

  

https://github.com/JanusGraph/janusgraph/tree/master/janusgraph-examples/example-remotegraph

我想调试这个项目,我配置(HBase + Solr)并运行带有

的Janus Graph服务器
  

$ JANUSGRAPH_HOME / bin / gremlin-server.sh $ JANUSGRAPH_HOME / conf / gremlin-server / gremlin-server.yaml

命令。 我通过运行配置>将此参数传递给IDEA程序参数

  

[Project Home] /conf/jgex-remote.properties

我的jgex-remote.properties文件是:

gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
# cluster file has the remote server configuration
gremlin.remote.driver.clusterFile=[Project Home]/conf/remote-objects.yaml
# source name is the global graph traversal source defined on the server
gremlin.remote.driver.sourceName=g 

和我的remote-objects.yaml文件包括:

hosts: [127.0.0.1]
port: 8182
serializer: {
    className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0,
    config: {
        ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry]
    }
}

尝试运行此命令:

cluster = Cluster.open(conf.getString("gremlin.remote.driver.clusterFile"));

并抛出此异常:

  

线程“main”中的异常java.lang.NoSuchFieldError:V3_0 at   org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0。(GryoMessageSerializerV3d0.java:41)     在   org.apache.tinkerpop.gremlin.driver.ser.Serializers.simpleInstance(Serializers.java:77)     在   org.apache.tinkerpop.gremlin.driver.Cluster $生成器。(Cluster.java:472)     在   org.apache.tinkerpop.gremlin.driver.Cluster $生成器。(Cluster.java:469)     在   org.apache.tinkerpop.gremlin.driver.Cluster.getBuilderFromSettings(Cluster.java:167)     在   org.apache.tinkerpop.gremlin.driver.Cluster.build(Cluster.java:159)     在org.apache.tinkerpop.gremlin.driver.Cluster.open(Cluster.java:233)     在   com.ets.dataplatform.init.RemoteGraphApp.openGraph(RemoteGraphApp.java:72)     在com.ets.dataplatform.init.GraphApp.runApp(GraphApp.java:290)at   com.ets.dataplatform.init.RemoteGraphApp.main(RemoteGraphApp.java:195)

对我来说没有意义。

提前致谢。

1 个答案:

答案 0 :(得分:2)

我会尝试调整你的版本。我假设你使用的是JanusGraph 0.2.0。如果您查看该版本的pom.xml,您会看到它已绑定到TinkerPop 3.2.6:

https://github.com/JanusGraph/janusgraph/blob/v0.2.0/pom.xml#L68

在应用程序中更改为该版本,并查看连接是否有效。采用这种方法不仅应该解决您的问题,还要确保您不会遇到其他不兼容问题。这并不是说您无法配置更高版本的TinkerPop以使用3.2.6,但它需要更多配置,您必须了解可能影响某些操作可能行为的微小更改。 / p>