java heroku

信不信由你,最近几天是我第一次尝试使用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>  <groupId>org.neo4j</groupId>  <artifactId>neo4j-rest-graphdb</artifactId>  <version>1.8.1</version>  </dependency>

在添加以下内容之前,依赖项一直无法解决:

<repositories>  <repository>  <id>mvn-neo4j</id>  <url>http://m2.neo4j.org/content/groups/everything</url>  </repository>  </repositories>

步骤2:连接到本地Neo4j服务器

我创建了一个简单的servlet来测试代码并弄清楚该库,您可以将此代码添加到所需的任何内容中。

RestAPI graphDb = new RestAPIFacade("http://localhost:7474/db/data");

请注意,您也可以使用

GraphDatabaseService graphDb=new RestGraphDatabase(“http://localhost:7474/db/data”);

这是我首先尝试使用的方法,它确实起作用,但是在创建RestCypherQueryEngine时似乎不是有效的参数(请参阅第3步)

步骤3:有效吗?

执行Cypher查询以返回数据库中的节点数。

QueryEngine engine=new RestCypherQueryEngine(graphDb);  QueryResult<Map<String,Object>> result=  engine.query("start n=node(*) return count(n) as total", Collections.EMPTY_MAP);  Iterator<Map<String, Object>> iterator=result.iterator();  if(iterator.hasNext()) {  Map<String,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:password@db.hosted.neo4j.org:port

使用以下代码在应用程序代码中提取变量

String neoUrl=System.getenv("NEO4J_URL");

并解析它以提取用户名,密码和数据库URL( http://db.hosted.neo4j.org:port )

修改您的代码以现在接受用户名和密码:

GraphDatabaseService graphDb=new RestGraphDatabase(dbUrl + “/db/data”,username,password);

将更改推送到heroku,访问您的应用程序,您应该会看到远程实例中的节点数。

步骤6:添加一个节点只是为了确定

Transaction tx = graphDb.beginTx();  Map<String,Object> props=new HashMap<String, Object>();  props.put("id",100);  props.put("name","firstNode");  Node node=graphDb.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>  <assembleDirectory>target</assembleDirectory>  <programs>  <program>  <mainClass>launch.Main</mainClass>  <name>webapp</name>  </program>  </programs>  <extraJvmArguments>-Dorg.neo4j.rest.logging_filter=true</extraJvmArguments>  </configuration>

而已! 现在,您应该能够使用Cypher或核心API来操作图形,但是在第2部分中将更详细地介绍事务和批处理。

参考:来自Thought Bytes博客的JCG合作伙伴 Luanne Misquitta 的Neo4j Java Rest Binding(Heroku部署)入门 。

翻译自: https://www.javacodegeeks.com/2013/07/getting-started-with-the-neo4j-java-rest-binding-heroku-deployment.html

java heroku

java heroku_Neo4j Java Rest绑定入门(Heroku部署)相关推荐

  1. Neo4j Java Rest绑定入门(Heroku部署)

    信不信由你,最近几天是我第一次尝试使用Neo4j的Java Rest Binding . 我先前在Heroku上的Flavorwocky应用程序使用了Grails Neo4j插件以及其他一些东西,包括 ...

  2. java heroku_使用Spring Boot和Heroku在20分钟内完成Java的单点登录

    java heroku 建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现. 注册 ,再也不 ...

  3. Java 定时任务调度(8)--ElasticJob 入门实战(ElasticJob-Lite使用)

    ElasticJob 是一个分布式调度解决方案,由 2 个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成.本文主要介绍 ElasticJob-Lite 的 ...

  4. Java系列技术之JavaWeb入门-钟洪发-专题视频课程

    Java系列技术之JavaWeb入门-1193人已学习 课程介绍         JavaWeb里的基础核心技术 课程收益     把JavaWeb里的核心技术讲清楚! 讲师介绍     钟洪发更多讲 ...

  5. Java程序员Go语言入门简介

    引用:Java程序员Go语言入门简介 为什么是 Go 语言 类 C 的语法,这意味着 Java.C#.JavaScript 程序员能很快的上手 有自己的垃圾回收机制 跨平台.编译即可执行无需安装依赖环 ...

  6. 初识Java 超详细的万字入门介绍

    目录 -------------初识Java --------数据类型与变量 1. 字面常量 2. 数据类型 3. 变量 3.1.整型变量 3.2.长整型变量 3.3. 短整型变量 3.4. 字节型变 ...

  7. JOGL - Java与OpenGl的绑定(转)

    JOGL - Java与OpenGl的绑定 默认分类 2009-11-22 20:31:05 阅读4 评论0 字号:大中小 在这篇文章里,摘录了<学习Java对于OpenGl的绑定>.作者 ...

  8. cassandra 数据到Java对象的映射绑定

    类似Hibernate和MyBatis的关系映射,自动帮你将查询数据或是修改的参数进行数据映射和绑定. 支持查询后返回数据ResultSet到Java对象的映射,支持修改.删除.查询之前参数的绑定. ...

  9. java -jar 默认参数_JAVA入门学习指南,建议收藏

    如果你不懂Java 并且想认真学习接触了解一下Java的语法,建议把这篇文章收藏了,多看几遍,应该可以初步掌握Java 大部分基础的语法 . 让我们出发吧!ps:本文有点长,耐心阅读 . 〇,编程环境 ...

最新文章

  1. matlab运行容量小,可变大小(运行时)输入Simulink Matlab
  2. 【多态】多态的向下转型
  3. 增量值编码器、单圈绝对值编码器、多圈绝对值编码器
  4. Spring Boot 最佳实践(三)模板引擎FreeMarker集成
  5. TypeScript入门教程 之 点差算子/散布运算符/...运算符/剩余参数/...参数
  6. LUNA16数据集肺结节显示亲测
  7. wxwindows qt
  8. 分享webStorm汉化
  9. 用友账套和报表服务器显示不同,用友T3ufo报表提示“服务器出现意外情况”
  10. TOM邮箱|国内适合商务人士的邮箱是什么邮箱
  11. UWB测距及定位原理
  12. Optimization Week 4: Duality
  13. 软件测试面试题-那些让我印象深刻的bug
  14. Roaring 20s(还有一些《A ConvNet for the 2020s》读后感)
  15. 计算机电源常见的认证有哪些,看清电源的各种认证
  16. android 视频开发2分之2(仿美拍,糗百)
  17. unity 动态字体 和 静态字体
  18. DimLayer实现和setRelativeLayer分析【Android12】
  19. windows之桌面程序引导功能
  20. matlab 中 将一组数据归一化到(0,1)之间

热门文章

  1. Codeforces1080F. Katya and Segments Sets
  2. poj3648 Wedding 2-sat
  3. OAuth2 实现单点登录 SSO
  4. Hadoop生态hive(四)数据类型
  5. 推荐:全网最全的Java并发面试题及答案。
  6. 《四世同堂》金句摘抄(十三)
  7. lombok进行有参无参构造出现的问题
  8. java后台 flex前台例子_flex+blazeds+java后台消息推送(简单示例)
  9. mysql级联复制转换成一主两从_一主两从转级联复制
  10. C打印函数printf的一种实现原理简要分析