これはApache TinkerPopのバグです。これを追跡するにはopened an issueです。
回避策の1つは、GryoではなくGraphSONシリアライザを使用するようにリモートドライバの構成を構成することです。これは、サーバーの設定を変更する必要はありません。例えば、conf/remote-objects.yaml
で:
hosts: [localhost]
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0,
config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] } }
異なる回避策がグレムリンサーバスクリプト内の別のトラバーサル・ソースを定義することです。デフォルトconf/gremlin-server/gremlin-server.yaml
を使用している場合たとえば、scripts/empty-sample.groovy
にグローバルバインディングを更新:
cluster = Cluster.open('conf/remote-objects.yaml')
graph = EmptyGraph.instance()
sg = graph.traversal().withRemote(DriverRemoteConnection.using(cluster, "sg"))
:
// define the default TraversalSource to bind queries to - named "g".
// define a subgraph traversal source - named "sg"
globals << [g : graph.traversal(),
sg: graph.traversal().withStrategies(SubgraphStrategy.build().edges(
__.has("field", "condition")).create())]
次に、あなたのリモートドライバからそのトラバーサル源を利用することができます