我使用titan 0.4.2和cassandra 2.0.7作为存储后端。我使用rexter-server 2.4.0在titan中插入顶点。但是,当我尝试使用rexter客户端更新顶点属性时,我得到空指针异常。
RexsterClient client = RexsterClientFactory.open("localhost", "titangraph");
client.execute("g.getVertex(8).setProperty('name','William')");
上面的代码抛出空指针异常。然而,脚本g.getVertex(8).setProperty('name','William')在gremlin控制台中运行得非常好
如何使用rexster rexpro更新titan vertex属性?
答案 0 :(得分:0)
我将假设您说NullPointerException
(NPE)来自服务器端执行的脚本。换句话说,问题是运行的结果:
g.getVertex(8).setProperty('name','William')
而不是client
实例化中的某些内容,或者与脚本本身之外的其他客户端代码相关的内容。
考虑到这一假设,我无法重新创建您的错误。 execute
方法会返回一个列表,其中包含一个null
,但我不认为您将此作为假设的问题。所以,我认为只有两件事可能是错的:
g.v(8)
返回的顶点不存在,返回null
g
是null
要验证,只需执行g.v(8)
即可。如果它返回null
,那么上面的第一项就是问题。如果您仍然获得NPE,那么上面的第二项就是问题所在。如果第2项是问题,那么您引用的图形的名称titangraph
要么不正确,要么Rexster处理该绑定时存在错误。为了解决这个问题,请执行此操作:
g = rexster.getGraph('titangraph')
g.v(8)
如果您还有NPE,那么我必须说您需要更仔细地检查rexster.xml
您的配置。如果它有效,那么您应该报告Rexster中的错误。