1

我正在尝试连接到远程 compose-janusgraph 服务器以创建图形并添加顶点。请注意,我无权访问服务器配置或更改服务器设置。

我可以通过我的本地 gremlin 控制台执行此操作

:remote connect tinkerpop.server conf/compose.yaml session
:remote console
graph=ConfiguredGraphFactory.create("mygraph")
graph=ConfiguredGraphFactory.open("mygraph")
g.addV("pat")
g.tx().commit()

我想对使用 GraphTraversalSource 的 Java 客户端做同样的事情。在 Java 中,我可以使用 Cluser->Client->submit 选项成功提交 groovy 字符串。但是我使用 GraphTraversalSource 一直没有成功,出现了各种错误。

我用来配置 gremlin 控制台的 conf/compose.yaml 如下,与我在远程图形gremlin.remote.driver.clusterFile配置中使用的相同

hosts: [portal-xxx.composedb.com] 
port: 15290 
username: admin 
password: pass 
connectionPool: { enableSsl: true } 
serializer: { className: 
    org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, 
    config: { serializeResultToString: true } }

远程图属性看起来像

gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
# cluster file has the remote server configuration
#gremlin.remote.driver.clusterFile=gremlin-console.yaml
gremlin.remote.driver.clusterFile=/Users/julian.stephen/ibm.github/privacy-secbu/Privacy-DataViz/src/main/resources/gremlin-console.yaml
# source name is the global graph traversal source defined on the server
gremlin.remote.driver.sourceName=mygraph

如果我尝试

Graph graph = EmptyGraph.instance();
GraphTraversalSource g = graph.traversal().withRemote(conf);
g.addV("Java Remote Test");
g.close();

代码无异常运行,但图中未创建顶点。我认为这是因为 tx() 没有提交。因此,我尝试获取 ConfiguredGraphFactory 而不是 Empty 图形,但以下所有选项都会导致异常。

JanusGraph graph = ConfiguredGraphFactory.open("mygraph");

而不是 EmptyGraph 会导致错误(与接下来描述的错误相同)。当我创建配置ConfiguredGraphFactory.createConfiguration(new MapConfiguration(map));,然后尝试打开图表时,我收到一个错误,例如Please add a key named "ConfigurationManagementGraph" to the "graphs" property in your YAML file and restart the server to be able to use the functionality of the ConfigurationManagementGraph class. 我无法访问服务器,如前所述。

我还尝试了使用 JanusGraphFactory 的不同变体,但无济于事。

有人可以帮忙吗?

4

1 回答 1

0

原来这是channelizerJanusgraph 服务器中设置的错误配置,它没有为使用 GraphConfiguration Factory 创建的新图创建动态遍历绑定。一旦服务器团队纠正了这一点并更新了部署,动态遍历就会被绑定并且代码开始工作。

于 2019-04-03T14:20:01.410 回答