无法使用Neo4j Rest API添加标签 - 读取为JSON时出错“

时间:2014-01-16 18:09:13

标签: rest neo4j

当尝试添加标签时,neo4j rest api会抛出运行时异常(错误读作为JSON'')。

我目前的设置

<dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-rest-graphdb</artifactId> 
    <version>2.0.0</version>
</dependency>
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j</artifactId>
    <version>2.0.0</version>
</dependency>
<dependency>
    <groupId>org.neo4j.app</groupId>
    <artifactId>neo4j-server</artifactId>
    <version>2.0.0</version>
</dependency>

尝试创建新节点并添加属性和标签的代码。当我们尝试添加标签时,抛出运行时异常。回滚工作正常。似乎API正在尝试获取尚未创建的资源的详细信息并尝试解析响应。

try ( Transaction tx = db.beginTx() ) {
    //create new user
    Node userNode = db.createNode();
    userNode.setProperty( "id", id );
    userNode.addLabel(DynamicLabel.label("GuestUser")); //throws runtime exception
    tx.success();
}

堆栈跟踪

java.lang.RuntimeException: Error reading as JSON ''
at org.neo4j.rest.graphdb.util.JsonHelper.readJson(JsonHelper.java:57)
at org.neo4j.rest.graphdb.util.JsonHelper.jsonToSingleValue(JsonHelper.java:62)
at org.neo4j.rest.graphdb.RequestResult.toEntity(RequestResult.java:114)
at org.neo4j.rest.graphdb.RequestResult.toMap(RequestResult.java:120)
at org.neo4j.rest.graphdb.ExecutingRestAPI.getData(ExecutingRestAPI.java:501)
at org.neo4j.rest.graphdb.RestAPIFacade.getData(RestAPIFacade.java:179)
at org.neo4j.rest.graphdb.entity.RestEntity.getStructuralData(RestEntity.java:75)
at org.neo4j.rest.graphdb.entity.RestNode.labelsPath(RestNode.java:188)
at org.neo4j.rest.graphdb.entity.RestNode.addLabel(RestNode.java:147)

Caused by: java.io.EOFException: No content to map to Object due to end of input
at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2775)
...
at org.neo4j.rest.graphdb.util.JsonHelper.readJson(JsonHelper.java:55)
... 43 more

到目前为止,有没有人见过这个问题。

1 个答案:

答案 0 :(得分:0)

这是一个问题,因为那些“伪”事务只聚合操作以在提交时立即发送它们。

所以你不能做“读你的写作”或做出决定。

addLabel操作使用从尚不存在的节点的结构信息返回的路径。

不要认为值得修复。如果您这么认为,请在https://github.com/neo4j/java-rest-binding/issues

提出问题