网站建设存在问题,论坛wordpress还是,网页制作源代码,谁帮58同城做的网站吗信不信由你#xff0c;最近几天是我第一次尝试使用Neo4j的Java Rest Binding 。 我先前在Heroku上的Flavorwocky应用程序使用了Grails Neo4j插件以及其他一些东西#xff0c;包括工作#xff0c;嵌入式Neo4j规则。 但是#xff0c;当部署到Heroku时#xff0c;嵌入式不会… 信不信由你最近几天是我第一次尝试使用Neo4j的Java Rest Binding 。 我先前在Heroku上的Flavorwocky应用程序使用了Grails Neo4j插件以及其他一些东西包括工作嵌入式Neo4j规则。 但是当部署到Heroku时嵌入式不会执行因此Java Rest Binding是嵌入式的。 比处理原始REST好得多尤其是如果您非常熟悉嵌入式api。 由于花了我很短的时间来解决问题主要是由于我缺乏Maven知识所以我想发布一个简单的“入门”指南。 最后您的应用程序和Neo4j应该互相交谈。 注意1本文处理Neo4j 1.8.1的其余绑定这是我的Heroku应用程序使用的版本。 注意2如果您打算尝试将Neo4j附加组件添加到Heroku应用程序中 步骤1获取/包含库 如果您不打算部署到Heroku和/或只想添加jar请从此处进行选择 http : //m2.neo4j.org/content/groups/everything/org/neo4j/neo4j-rest-graphdb/1.8 .1 / 如果您喜欢/必须使用maven请在pom.xml中包含以下依赖项 dependency groupIdorg.neo4j/groupId artifactIdneo4j-rest-graphdb/artifactId version1.8.1/version /dependency 在添加以下内容之前依赖项一直无法解决 repositories repository idmvn-neo4j/id urlhttp://m2.neo4j.org/content/groups/everything/url /repository /repositories步骤2连接到本地Neo4j服务器 我创建了一个简单的servlet来测试代码并弄清楚该库您可以将此代码添加到所需的任何内容。 RestAPI graphDb new RestAPIFacade(http://localhost:7474/db/data); 请注意您也可以使用 GraphDatabaseService graphDbnew RestGraphDatabase(“http://localhost:7474/db/data”); 这是我首先尝试使用的方法它确实起作用但是在创建RestCypherQueryEngine时似乎不是有效的参数请参阅第3步 步骤3有效吗 执行Cypher查询以返回数据库中的节点数。 QueryEngine enginenew RestCypherQueryEngine(graphDb); QueryResultMapString,Object result engine.query(start nnode(*) return count(n) as total, Collections.EMPTY_MAP); IteratorMapString, Object iteratorresult.iterator(); if(iterator.hasNext()) { MapString,Object row iterator.next(); out.print(Total nodes: row.get(total)); }步骤4找出答案 现在是时候启动Neo4j服务器了如果还没有的话。 如果您使用的是Tomcat并按照此处的指南进行操作 请构建并运行 https : //devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat mvn package sh target/bin/webapp 或者以其他方式启动您的Web应用程序。 访问您的servlet / jsp /其他任何内容您应该看到Neo4j数据库中的节点数。 一个新的数据库将返回1个节点参考节点 步骤5部署到Heroku 您可以在NEO4J_URL环境变量中找到Heroku上Neo4j数据库的URL因此您无需在应用程序中对其进行硬编码。 变量值如下所示 http://username:passworddb.hosted.neo4j.org:port 使用以下代码在应用程序代码中提取变量 String neoUrlSystem.getenv(NEO4J_URL); 并解析它以提取用户名密码和数据库URL http://db.hosted.neo4j.org:port 修改您的代码以现在接受用户名和密码 GraphDatabaseService graphDbnew RestGraphDatabase(dbUrl “/db/data”,username,password); 将更改推送到heroku访问您的应用程序您应该会看到远程实例中的节点数。 第6步添加一个节点只是为了确定 Transaction tx graphDb.beginTx(); MapString,Object propsnew HashMapString, Object(); props.put(id,100); props.put(name,firstNode); Node nodegraphDb.createNode(props); tx.success(); tx.finish(); 执行相同的Cypher查询以获取节点数您应该看到它增加了1。 如果您迫不及待想要查看绑定实际产生的REST调用则可以打开日志记录。 根据文档您需要将系统属性org.neo4j.rest.logging_filter设置为true。 我看到REST调用记录在Tomcat控制台上。 进一步谷歌搜索告诉我可以通过在pom.xml的appassembler-maven-plugin中将其添加为extraJvmArgument来在Heroku上设置此属性 configuration assembleDirectorytarget/assembleDirectory programs program mainClasslaunch.Main/mainClass namewebapp/name /program /programs extraJvmArguments-Dorg.neo4j.rest.logging_filtertrue/extraJvmArguments /configuration 而已 现在您应该能够使用Cypher或核心API来操作图形但是在第2部分中将进一步介绍事务和批处理。 参考来自Thought Bytes博客的JCG合作伙伴 Luanne Misquitta 的Neo4j Java Rest BindingHeroku部署入门 。 翻译自: https://www.javacodegeeks.com/2013/07/getting-started-with-the-neo4j-java-rest-binding-heroku-deployment.html