使用rexster rexpro失败更新titan vertex属性

时间:2014-05-08 07:25:04

标签: cassandra titan rexster

我使用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属性?

1 个答案:

答案 0 :(得分:0)

我将假设您说NullPointerException(NPE)来自服务器端执行的脚本。换句话说,问题是运行的结果:

g.getVertex(8).setProperty('name','William')

而不是client实例化中的某些内容,或者与脚本本身之外的其他客户端代码相关的内容。

考虑到这一假设,我无法重新创建您的错误。 execute方法会返回一个列表,其中包含一个null,但我不认为您将此作为假设的问题。所以,我认为只有两件事可能是错的:

  1. g.v(8)返回的顶点不存在,返回null
  2. gnull
  3. 要验证,只需执行g.v(8)即可。如果它返回null,那么上面的第一项就是问题。如果您仍然获得NPE,那么上面的第二项就是问题所在。如果第2项是问题,那么您引用的图形的名称titangraph要么不正确,要么Rexster处理该绑定时存在错误。为了解决这个问题,请执行此操作:

    g = rexster.getGraph('titangraph')
    g.v(8)
    

    如果您还有NPE,那么我必须说您需要更仔细地检查rexster.xml您的配置。如果它有效,那么您应该报告Rexster中的错误。