0
public class Test  
{  
       private static RestAPI rest = new RestAPIFacade("myIp","username","password");  
       public static void main(String[] args)
       {
              Map<String, Object> foo = new HashMap<String, Object>();
          foo.put("Test key", "testing");
              rest.createNode(foo);  
       }
}  

没有输出它只是无限期地挂在连接上。

环境:
Eclipse JDK 7
neo4j-rest-binding 1.9:https
://github.com/neo4j/java-rest-binding Heroku

关于为什么这只是挂起的任何想法?

以下代码有效:

 public class Test  
    {  
           private static RestAPI rest = new RestAPIFacade("myIp","username","password");  
           public static void main(String[] args)
           {
                        Node node = rest.getNodeById(1);
           }
    }  

因此,我可以正确地检索远程值。

4

1 回答 1

1

我想这是由于缺乏交易使用造成的。默认情况下,neo4j-rest-binding 将多个操作聚合到一个请求中(也就是一个事务)。有两种方法可以解决这个问题:

  1. -Dorg.neo4j.rest.batch_transaction=false通过为您的 JVM设置将事务行为更改为“1 个操作 = 1 个事务” 。请注意,这可能会影响性能,因为每个原子操作都是单独的 REST 请求。
  2. 在您的代码中使用事务:

.

RestGraphDatabse db = new RestGraphDatabase("http://localhost:7474/db/data",username,password);
Transaction tx = db.beginTx();
try {
    Node node = db.createNode();
    node.setPropery("key", "value");
    tx.success();
} finally {
    tx.finish();
}
于 2013-02-17T18:48:31.823 回答