Java neo4j rest graphdb在连接到远程heroku实例时挂起
因此,我可以正确地检索远程值。我想这是由于缺少事务使用造成的。默认情况下,neo4j rest绑定将多个操作聚合到一个请求中(也称为一个事务)。有两种方法可以解决此问题:Java neo4j rest graphdb在连接到远程heroku实例时挂起,java,rest,heroku,neo4j,Java,Rest,Heroku,Neo4j,因此,我可以正确地检索远程值。我想这是由于缺少事务使用造成的。默认情况下,neo4j rest绑定将多个操作聚合到一个请求中(也称为一个事务)。有两种方法可以解决此问题: 通过设置将事务行为更改为“1操作=1事务” -Dorg.neo4j.rest.batch_transaction=false用于JVM。请注意,这可能会影响性能,因为每个原子操作都是一个单独的REST请求 在代码中使用事务: 为什么使用RestGraphDatabase而不是RestAPI?因为它使用与EmbeddedGra
-Dorg.neo4j.rest.batch_transaction=false
用于JVM。请注意,这可能会影响性能,因为每个原子操作都是一个单独的REST请求为什么使用RestGraphDatabase而不是RestAPI?因为它使用与EmbeddedGraphDatabase相同的API。因此,您可以在运行Neo4j embedded或作为服务器运行时使用相同的代码(除了初始化[embedded | Rest]GraphDatabase。该版本的Java Rest绑定中有一个bug,它启动内部线程而不是守护进程线程。我也有同样的问题。上面的选项对我不起作用,我正试图根据Michael的评论了解bug的位置。哪个jar/版本有bug?1.neo4j Rest绑定和neo4j Rest graphdb和Java-r一样吗est binding?2.OP正在使用neo4j rest binding的1.9版本,但我在github站点或maven上找不到该版本或任何版本。3.maven将1.8.1版本作为neo4j rest graphdb的最新版本,这就是我在处理上述问题时使用的版本。回答我自己的问题:这个错误在neo4j-rest-graphdb.jar中。github有1.9版本,显然不可用1.9代码的更改看起来可以解决这个问题,但显然不是按照OP。
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);
}
}
public class Test
{
private static RestAPI rest = new RestAPIFacade("myIp","username","password");
public static void main(String[] args)
{
Node node = rest.getNodeById(1);
}
}
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();
}