0

我使用 Titan 0.4.2 和 cassandra 2.0.7 作为存储后端。我已经使用 rexter-server 2.4.0 在泰坦中插入顶点。但是,当我尝试使用 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 顶点属性?

4

1 回答 1

0

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

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

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

考虑到这一假设,我无法重现您的错误。该execute方法确实返回了一个列表,其中包含一个列表,null但我不认为你指的是假设你的问题。所以,我能想到的实际上只有两件事可能是错误的:

  1. 返回的顶点g.v(8)不存在,返回null
  2. gnull

要验证,只需执行g.v(8). 如果它返回null,那么上面的第一项就是问题所在。如果您仍然获得 NPE,那么上面的第二项就是问题所在。如果第二项是问题,那么您引用的图形的名称 ,titangraph或者不正确,或者 Rexster 处理该绑定时存在错误。要弄清楚这一点,请改为执行以下操作:

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

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

于 2014-05-08T10:28:14.147 回答