जैसा कि GitHub डॉक्स, सीआरयूडी संचालन का परीक्षण करने के लिए जावा में एक साधारण एपीआई बनाया, और मुझे सृजन और काम करने के लिए पढ़ा गया। समस्या तब उत्पन्न होती है जब मैं डेटा निकालने का प्रयास करता हूं। जोड़ते समय, मैं कॉल करता हूं:

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)

मेरे लॉग (सर्वर पर मैं एपीआई को कॉल कर रहा हूं) दिखाता है:

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");

मैं इस समस्या पर काफी समय से अटका हुआ हूं, इसलिए किसी भी मदद की वास्तव में सराहना की जाती है!

2
Miki P 3 जुलाई 2018, 03:21

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि आपके पास संस्करण समस्या का कुछ रूप है। iterate() का उपयोग किए बिना उस कॉल को आज़माएं। चूंकि आप केवल एक विलोपन कर रहे हैं, इसलिए iterate() के बजाय next() करना सुरक्षित होना चाहिए यह देखने के लिए कि क्या यह समस्या का समाधान करता है। यदि नहीं, तो मैं आपके ड्राइवर (आप वर्तमान में 3.3.2 हैं) को टिंकरपॉप के संस्करण में संरेखित कर दूंगा जो कि जेनसग्राफ उपयोग कर रहा है जो 0.2 की वर्तमान रिलीज के लिए 3.2.6 है:

https://github.com/JanusGraph/janusgraph/blob/v0.2.0/pom.xml#L68

मुझे लगता है कि आप बिना किसी चिंता के 3.2.9 के माध्यम से किसी भी संस्करण का सुरक्षित रूप से उपयोग कर सकते हैं। अंत में, मुझे लगता है कि समस्या 3.3.1 के साथ iterate() के साथ है - यहां पहला बुलेट बिंदु देखें:

https://github.com/apache/tinkerpop/blob/3.3.1/CHANGELOG.asciidoc#tinkerpop-331-release-date-december-17-2017

जब तक आप इस तरह के अपग्रेड परिवर्तनों के बारे में जानते हैं, तब तक ड्राइवर और सर्वर के गलत मिलान वाले संस्करणों का उपयोग करना आम तौर पर सुरक्षित है, लेकिन हम आम तौर पर अनुशंसा करते हैं कि आप ऐसा न करें ताकि आप इस प्रकार की समस्याओं का सामना न करें।

1
stephen mallette 3 जुलाई 2018, 14:20