janusGraph 使用远程连接更新和删除:report DefaultGraphTraversal.none()

janusGraph using remote connection to update and delete : report DefaultGraphTraversal.none()

使用 janusGraph git 代码示例:example-remotegraph

当我要创建元素和做一些查询时,它工作得很好。
但是更新删除报异常...

java.util.concurrent.CompletionException: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Could not locate method: DefaultGraphTraversal.none()
    at java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375)
    at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
    at org.apache.tinkerpop.gremlin.driver.ResultSet.one(ResultSet.java:107)
    at org.apache.tinkerpop.gremlin.driver.ResultSet.hasNext(ResultSet.java:159)
    at org.apache.tinkerpop.gremlin.driver.ResultSet.next(ResultSet.java:166)
    at org.apache.tinkerpop.gremlin.driver.ResultSet.next(ResultSet.java:153)
    at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:142)
    at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:127)
    at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal.nextTraverser(DriverRemoteTraversal.java:108)
    at org.apache.tinkerpop.gremlin.process.remote.traversal.step.map.RemoteStep.processNextStart(RemoteStep.java:80)
    at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128)
    at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38)
    at org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203)
    at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2694)
    at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:178)
    at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48)
    at org.janusgraph.example.GraphApp.deleteElements(GraphApp.java:301)
    at org.janusgraph.example.GraphApp.runApp(GraphApp.java:350)
    at org.janusgraph.example.RemoteGraphApp.main(RemoteGraphApp.java:227)

这是代码:

    public void deleteElements() {
    try {
        if (g == null) {
            return;
        }
        LOGGER.info("deleting elements");
        // note that this will succeed whether or not pluto exists
        g.V().has("name", "pluto").drop().iterate();
        if (supportsTransactions) {
            g.tx().commit();
        }
    } catch (Exception e) {
        LOGGER.error(e.getMessage(), e);
        if (supportsTransactions) {
            g.tx().rollback();
        }
    }
}

emmm.....我以为我已经解决了这个问题.....

可能使用的库版本与 gremlin 服务器的版本不匹配的唯一原因;

我试过将gremlin驱动库转成3.2.9版本,效果不错

您需要使用与 JanusGraph 相同的 Tinkerpop 版本,因为这是 Tinkerpop 中引入的不兼容更改