Я настроил экземпляр JanusGraph, поддерживаемый DynamoDB, как описано в документах GitHub , создал простой API на Java для тестирования операций CRUD, и я получил создание и чтение для работы. Проблема возникает, когда я пытаюсь удалить данные. При добавлении звоню:
Vertex v = this.g.addV("student").property("name", student.getName()).next()
и возврат
Long id = (Long) v.id()
return Long.toString(id)
При снятии звоню:
this.g.V(Long.valueOf(id)).drop().iterate()
и получите следующую ошибку с сервера Gremlin:
2631184 [gremlin-server-worker-1] ERROR
org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor
- Could not deserialize the Traversal instance
2631186 [gremlin-server-worker-1] WARN
org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler - Could
not deserialize the Traversal instance
org.apache.tinkerpop.gremlin.server.op.OpProcessorException: Could not deserialize the Traversal instance
at org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor.iterateBytecodeTraversal(TraversalOpProcessor.java:369)
at org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler.channelRead0(OpExecutorHandler.java:68)
at org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler.channelRead0(OpExecutorHandler.java:43)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
Мои журналы (на сервере, с которого я вызываю API) показывают:
Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: null:none([])
at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:246) ~[gremlin-driver-3.3.2.jar:3.3.2]
at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:197) ~[gremlin-driver-3.3.2.jar:3.3.2]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[netty-all-4.1.jar:4.1.19.Final]
Я использую org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0
в качестве своего сериализатора, также пробовал и другие, но, похоже, ничего не работает.
Я инициализирую обход графика с помощью EmptyGraph
следующим образом:
this.g = EmptyGraph.instance().traversal().withRemote("some-path/remote-graph.properties");
Я застрял на этой проблеме довольно долго, поэтому любая помощь действительно ценится!