java heroku_Neo4j Java Rest绑定入门(Heroku部署)
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部分中将更详细地介绍事务和批处理。
翻译自: 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部署)相关推荐
- Neo4j Java Rest绑定入门(Heroku部署)
信不信由你,最近几天是我第一次尝试使用Neo4j的Java Rest Binding . 我先前在Heroku上的Flavorwocky应用程序使用了Grails Neo4j插件以及其他一些东西,包括 ...
- java heroku_使用Spring Boot和Heroku在20分钟内完成Java的单点登录
java heroku 建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现. 注册 ,再也不 ...
- Java 定时任务调度(8)--ElasticJob 入门实战(ElasticJob-Lite使用)
ElasticJob 是一个分布式调度解决方案,由 2 个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成.本文主要介绍 ElasticJob-Lite 的 ...
- Java系列技术之JavaWeb入门-钟洪发-专题视频课程
Java系列技术之JavaWeb入门-1193人已学习 课程介绍 JavaWeb里的基础核心技术 课程收益 把JavaWeb里的核心技术讲清楚! 讲师介绍 钟洪发更多讲 ...
- Java程序员Go语言入门简介
引用:Java程序员Go语言入门简介 为什么是 Go 语言 类 C 的语法,这意味着 Java.C#.JavaScript 程序员能很快的上手 有自己的垃圾回收机制 跨平台.编译即可执行无需安装依赖环 ...
- 初识Java 超详细的万字入门介绍
目录 -------------初识Java --------数据类型与变量 1. 字面常量 2. 数据类型 3. 变量 3.1.整型变量 3.2.长整型变量 3.3. 短整型变量 3.4. 字节型变 ...
- JOGL - Java与OpenGl的绑定(转)
JOGL - Java与OpenGl的绑定 默认分类 2009-11-22 20:31:05 阅读4 评论0 字号:大中小 在这篇文章里,摘录了<学习Java对于OpenGl的绑定>.作者 ...
- cassandra 数据到Java对象的映射绑定
类似Hibernate和MyBatis的关系映射,自动帮你将查询数据或是修改的参数进行数据映射和绑定. 支持查询后返回数据ResultSet到Java对象的映射,支持修改.删除.查询之前参数的绑定. ...
- java -jar 默认参数_JAVA入门学习指南,建议收藏
如果你不懂Java 并且想认真学习接触了解一下Java的语法,建议把这篇文章收藏了,多看几遍,应该可以初步掌握Java 大部分基础的语法 . 让我们出发吧!ps:本文有点长,耐心阅读 . 〇,编程环境 ...
最新文章
- matlab运行容量小,可变大小(运行时)输入Simulink Matlab
- 【多态】多态的向下转型
- 增量值编码器、单圈绝对值编码器、多圈绝对值编码器
- Spring Boot 最佳实践(三)模板引擎FreeMarker集成
- TypeScript入门教程 之 点差算子/散布运算符/...运算符/剩余参数/...参数
- LUNA16数据集肺结节显示亲测
- wxwindows qt
- 分享webStorm汉化
- 用友账套和报表服务器显示不同,用友T3ufo报表提示“服务器出现意外情况”
- TOM邮箱|国内适合商务人士的邮箱是什么邮箱
- UWB测距及定位原理
- Optimization Week 4: Duality
- 软件测试面试题-那些让我印象深刻的bug
- Roaring 20s(还有一些《A ConvNet for the 2020s》读后感)
- 计算机电源常见的认证有哪些,看清电源的各种认证
- android 视频开发2分之2(仿美拍,糗百)
- unity 动态字体 和 静态字体
- DimLayer实现和setRelativeLayer分析【Android12】
- windows之桌面程序引导功能
- matlab 中 将一组数据归一化到(0,1)之间