我正在尝试连接到远程 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 的不同变体,但无济于事。
有人可以帮忙吗?