我正在使用Gremlin服务器。
我将数据库的内容保存在一个XML文件(GraphML)中,代码为:
g.io(path).write().iterate()要加载文件,我使用以下行:
g.io(path).read().iterate();然后我收到这个错误:
connection.js:282 new ResponseError(util.format('Server error: %s (%d)', response.status.message, response.status.code), response.status)); ^ ResponseError: Server error: For input string: "-2555865115" (500)此错误来自gremlin服务器。
如果我在xml文件中搜索此值(-2555865115)并删除最后一个字符(-255586511),则问题就解决了。
为什么会发生这种情况?我如何解决此问题?数据库始终保存我必须手动修复的文件。
如果我必须更改Gremlin Server配置文件中的某些内容,您能告诉我应该修改哪个文件以及如何修改吗?因为我以前从来没有这么做过。
我在本地计算机上使用Gremlin服务器只是为了测试,没有任何更改。
编辑:
我将conf/tinkergraph-empty.properties更改为:
gremlin.tinkergraph.vertexIdManager=ANY gremlin.tinkergraph.edgeIdManager=ANY gremlin.tinkergraph.vertexPropertyIdManager=ANY我重新启动,但加载XML文件时遇到相同的错误。
推荐答案鉴于从数值中删除最后一个整数解决了问题,我推测您达到了一个限制;具体地说,这是一个整数可以具有的最低值。
In Java, that value is -2147483647,而default implementation of Gremlin Server正好是编写default implementation of Gremlin Server的语言。因此,在尝试将该值解释为整数时,反序列化过程很可能会失败。由于该值低于整数的最小值,并且由于错误消息指出它是一个输入字符串,Integer.parseInt("-2555865115")很可能是幕后失败的调用。
如果Gremlin同时序列化和反序列化数据,则可能是该实现中的错误,您可能希望file an issue。同时,考虑实现并注册custom serializer,以便更好地控制IO进程的工作方式。
更多推荐
无法加载我刚刚保存的GraphML文件
发布评论