从Java连接到compose Janusgraph以进行远程遍历

从Java连接到compose Janusgraph以进行远程遍历,java,janusgraph,compose,Java,Janusgraph,Compose,我正在尝试连接到远程compose janusgraph服务器以创建图形并添加顶点。请注意,我无法访问服务器配置,也无法更改服务器设置 我可以在本地的小精灵控制台上用 :remote connect tinkerpop.server conf/compose.yaml session :remote console graph=ConfiguredGraphFactory.create("mygraph") graph=ConfiguredGraphFactory.open("mygraph")

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

我可以在本地的小精灵控制台上用

: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如下所示,与我在remote graph
gremlin.remote.driver.clusterFile
config中使用的相同

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而不是空图,但下面的所有选项都会导致异常

JanusGraph graph = ConfiguredGraphFactory.open("mygraph");
而不是EmptyGraph会导致错误(与下面描述的错误相同)。当我创建一个配置时
ConfiguredGraphFactory.createConfiguration(新的MapConfiguration(map))
,然后尝试打开图形,我收到一个类似
的错误。请在YAML文件的“graphs”属性中添加一个名为“ConfigurationManagementGraph”的键,然后重新启动服务器,以便能够使用ConfigurationManagementGraph类的功能。
如前所述,我无权访问服务器

我还尝试了使用JanusGraphFactory的不同变体,但没有成功


有人能帮忙吗?

发现这是Janusgraph服务器中的
通道器设置的错误配置,该设置没有为使用GraphConfiguration Factory创建的新图形创建动态遍历绑定。一旦服务器团队纠正了这一问题并更新了部署,动态遍历正在绑定,代码开始工作。

结果表明,这是Janusgraph服务器中的
channelizer
设置的错误配置,该服务器没有为使用GraphConfiguration Factory创建的新图形创建动态遍历绑定。一旦服务器团队纠正了这一点并更新了部署,动态遍历就开始绑定,代码开始工作。

channelizer的更改是什么?您能详细说明一下吗?我们还看到“请在YAML文件的“graphs”属性中添加一个名为“ConfigurationManagementGraph”的键,并在尝试从java客户端连接时重新启动服务器,以便能够使用ConfigurationManagementGraph类的功能”。JanusGraph文档对此不清楚。是否尝试使用
org.JanusGraph.core.ConfiguredGraphFactory
动态创建图形?只有
ConfigurationManagementGraph
才相关。我还没有尝试在Janus服务器设置中使用它。这是很久以前的事了,当时我还没有看到服务器配置,无法确定发生了什么变化,我需要将
channelizer
从默认的
org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
更改为
org.janusgraph.channelizers.JanusGraphWebSocketChannelizer
。看,通灵器的变化是什么?您能详细说明一下吗?我们还看到“请在YAML文件的“graphs”属性中添加一个名为“ConfigurationManagementGraph”的键,并在尝试从java客户端连接时重新启动服务器,以便能够使用ConfigurationManagementGraph类的功能”。JanusGraph文档对此不清楚。是否尝试使用
org.JanusGraph.core.ConfiguredGraphFactory
动态创建图形?只有
ConfigurationManagementGraph
才相关。我还没有尝试在Janus服务器设置中使用它。这是很久以前的事了,当时我还没有看到服务器配置,无法确定发生了什么变化,我需要将
channelizer
从默认的
org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
更改为
org.janusgraph.channelizers.JanusGraphWebSocketChannelizer
。看见