Heroku RestAPI和Neo4j
有人能用JDK1.6和Heroku帮助解决这些Neo4j(1.9)错误和RestApi吗 代码的目的只是演示在Java中使用cypher和Neo4j的功能。我知道只有RestAPI在Heroku工作Heroku RestAPI和Neo4j,heroku,neo4j,Heroku,Neo4j,有人能用JDK1.6和Heroku帮助解决这些Neo4j(1.9)错误和RestApi吗 代码的目的只是演示在Java中使用cypher和Neo4j的功能。我知道只有RestAPI在Heroku工作 package com.example; import java.util.List; import org.neo4j.graphdb.Direction; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.grap
package com.example;
import java.util.List;
import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.helpers.collection.*;
import org.neo4j.rest.graphdb.RestAPI;
import org.neo4j.rest.graphdb.RestAPIFacade;
import org.neo4j.rest.graphdb.RestGraphDatabase;
import org.neo4j.rest.graphdb.query.RestCypherQueryEngine;
import org.neo4j.rest.graphdb.util.*;
import org.springframework.stereotype.Component;
import java.util.Map;
import com.example.IDatabaseConnector;
//import org.neo4j.rest.graphdb.RestGraphDatabase;
//import org.neo4j.
@Component
//public class Neo4jDatabaseConnector implements IDatabaseConnector {
public class Neo4jDatabaseConnector implements IDatabaseConnector{
Node aNode;
Node first;
Node second;
Relationship relation;
private static GraphDatabaseService GraphDb;
private static RestAPI restAPI;
Transaction txn;
private static enum RelTypes implements RelationshipType
{
KNOWS,
USAGE
}
public void showNode( )
{
// have to add code for cypher
RestCypherQueryEngine rcqe = new RestCypherQueryEngine(restAPI);
//Then just execute your cypher statements using rcqe.query().
// int length=0;
String countNodes = "START n=node(*) RETURN count(*)";
String createNodes = "CREATE (n {name: 'Trevor Oakley'})";
rcqe.query(createNodes, null);
// QueryResult <Map<String,Object>> result = rcqe.query(countNodes, null);
//for (Map<String, Object> row:result){
// length++;
//}
//System.out.println("length="+length);
// rcqe.query(countNodes, Map<String, Object> row:result);
// rcqe.query(countNodes, Map<String,Object>:result)
// rcqe.
/* ExecutionEngine engine = new ExecutionEngine(GraphDb);
int length=-1;
try{
ExecutionResult result = engine.execute("start n=node(*) return n");
if (result == null){
length = 0;
} else
{
for (@SuppressWarnings("unused")
Map<String, Object> row:result){
length++;
}
}
} catch (NullPointerException e) {
// _log.error(e.getMessage(),e);
length=-2;
}
System.out.println("len="+length);
*/
}
public Neo4jDatabaseConnector() {
//GraphDb=new GraphDatabaseFactory().newEmbeddedDatabase(Neo4j_DBPath);
}
public int createDBRest()
{
restAPI = new RestAPIFacade(System.getenv("NEO4J_URL"),
System.getenv("NEO4J_USERNAME"),
System.getenv("NEO4J_PASSWORD"));
try{
GraphDb = new RestGraphDatabase(restAPI);
}
catch (Exception e){
return 1;
}
return 0;
}
public int createDB(String dbLoc) {
System.out.println("db loc ="+dbLoc);
int error = 0;
try{
GraphDb=new GraphDatabaseFactory().newEmbeddedDatabase(dbLoc);
//GraphDb=new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(dbLoc);
System.out.println("db loc ="+dbLoc);
String stringDB = GraphDb.toString();
System.out.println("connection ="+stringDB);
}
catch (Exception e){
System.out.println("error - ");
error = 1;
}
return erro
r;
}
Problem accessing /hello. Reason:
Error reading as JSON ''
Caused by:
java.lang.RuntimeException: Error reading as JSON ''
at org.neo4j.rest.graphdb.util.JsonHelper.readJson(JsonHelper.java:57)
at org.neo4j.rest.graphdb.util.JsonHelper.jsonToSingleValue(JsonHelper.java:62)
at org.neo4j.rest.graphdb.RequestResult.toEntity(RequestResult.java:114)
at org.neo4j.rest.graphdb.RequestResult.toMap(RequestResult.java:120)
at org.neo4j.rest.graphdb.ExecutingRestRequest.toMap(ExecutingRestRequest.java:187)
at org.neo4j.rest.graphdb.ExecutingRestAPI.query(ExecutingRestAPI.java:475)
at org.neo4j.rest.graphdb.ExecutingRestAPI.query(ExecutingRestAPI.java:495)
at org.neo4j.rest.graphdb.RestAPIFacade.query(RestAPIFacade.java:233)
at org.neo4j.rest.graphdb.query.RestCypherQueryEngine.query(RestCypherQueryEngine.java:50)
at com.example.Neo4jDatabaseConnector.showNode(Neo4jDatabaseConnector.java:53)
at com.example.HelloServlet.doGet(HelloServlet.java:22)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:521)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.eclipse.jetty.server.Server.handle(Server.java:349)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:449)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:910)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:76)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.io.EOFException: No content to map to Object due to end of input
at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2775)
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2718)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1863)
at org.neo4j.rest.graphdb.util.JsonHelper.readJson(JsonHelper.java:55)
... 34 more
Caused by:
java.io.EOFException: No content to map to Object due to end of input
at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2775)
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2718)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1863)
at org.neo4j.rest.graphdb.util.JsonHelper.readJson(JsonHelper.java:55)
at org.neo4j.rest.graphdb.util.JsonHelper.jsonToSingleValue(JsonHelper.java:62)
at org.neo4j.rest.graphdb.RequestResult.toEntity(RequestResult.java:114)
at org.neo4j.rest.graphdb.RequestResult.toMap(RequestResult.java:120)
at org.neo4j.rest.graphdb.ExecutingRestRequest.toMap(ExecutingRestRequest.java:187)
at org.neo4j.rest.graphdb.ExecutingRestAPI.query(ExecutingRestAPI.java:475)
at org.neo4j.rest.graphdb.ExecutingRestAPI.query(ExecutingRestAPI.java:495)
at org.neo4j.rest.graphdb.RestAPIFacade.query(RestAPIFacade.java:233)
at org.neo4j.rest.graphdb.query.RestCypherQueryEngine.query(RestCypherQueryEngine.java:50)
at com.example.Neo4jDatabaseConnector.showNode(Neo4jDatabaseConnector.java:53)
at com.example.HelloServlet.doGet(HelloServlet.java:22)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:521)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.eclipse.jetty.server.Server.handle(Server.java:349)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:449)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:910)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:76)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
at java.lang.Thread.run(Thread.java:679)
package.com.example;
导入java.util.List;
导入org.neo4j.graphdb.Direction;
导入org.neo4j.graphdb.GraphDatabaseService;
导入org.neo4j.graphdb.Node;
导入org.neo4j.graphdb.Relationship;
导入org.neo4j.graphdb.RelationshipType;
导入org.neo4j.graphdb.Transaction;
导入org.neo4j.graphdb.factory.GraphDatabaseFactory;
导入org.neo4j.helpers.collection.*;
导入org.neo4j.rest.graphdb.RestAPI;
导入org.neo4j.rest.graphdb.RestAPIFacade;
导入org.neo4j.rest.graphdb.RestGraphDatabase;
导入org.neo4j.rest.graphdb.query.RestCypherQueryEngine;
导入org.neo4j.rest.graphdb.util.*;
导入org.springframework.stereotype.Component;
导入java.util.Map;
导入com.example.IDatabaseConnector;
//导入org.neo4j.rest.graphdb.RestGraphDatabase;
//导入org.neo4j。
@组成部分
//公共类Neo4jDatabaseConnector实现IDatabaseConnector{
公共类Neo4jDatabaseConnector实现IDatabaseConnector{
节点阳极;
节点优先;
第二节点;
关系;
私有静态GraphDatabaseService GraphDb;
私有静态RestAPI RestAPI;
事务txn;
私有静态枚举RelTypes实现RelationshipType
{
知道,,
用法
}
公共void showNode()
{
//必须为密码添加代码
RestCypherQueryEngine rcqe=新的RestCypherQueryEngine(restAPI);
//然后使用rcqe.query()执行您的密码语句。
//整数长度=0;
String countNodes=“开始n=node(*)返回计数(*)”;
String createNodes=“CREATE(n{name:'Trevor Oakley'})”;
query(createNodes,null);
//QueryResult result=rcqe.query(countNodes,null);
//用于(地图行:结果){
//长度++;
//}
//System.out.println(“长度=”+长度);
//查询(countNodes,映射行:result);
//查询(countNodes,Map:result)
//rcqe。
/*ExecutionEngine=新的ExecutionEngine(GraphDb);
整数长度=-1;
试一试{
ExecutionResult=engine.execute(“开始n=node(*)返回n”);
如果(结果==null){
长度=0;
}否则
{
对于(@SuppressWarnings(“未使用”)
地图行:结果){
长度++;
}
}
}捕获(NullPointerException e){
//_log.error(e.getMessage(),e);
长度=-2;
}
System.out.println(“len=”+长度);
*/
}
公共Neo4jDatabaseConnector(){
//GraphDb=new GraphDatabaseFactory().newEmbeddedDatabase(Neo4j_DBPath);
}
public int createDBRest()
{
restAPI=newrestapifacade(System.getenv(“NEO4J_URL”),
System.getenv(“NEO4J_用户名”),
System.getenv(“NEO4J_密码”);
试一试{
GraphDb=新的RestGraphDatabase(restAPI);
}
捕获(例外e){
返回1;
}
返回0;
}
public int createDB(字符串dbLoc){
System.out.println(“db loc=“+dbLoc”);
整数误差=0;
试一试{
GraphDb=新GraphDatabaseFactory().newEmbeddedDatabase(dbLoc);
//GraphDb=新GraphDatabaseFactory().newEmbeddedDatabaseBuilder(dbLoc);
System.out.println(“db loc=“+dbLoc”);
String stringDB=GraphDb.toString();
System.out.println(“connection=“+stringDB”);
}
捕获(例外e){
System.out.println(“错误-”);
误差=1;
}
返回错误
R
}
访问/hello时出现问题。原因:
读取为JSON“”时出错
原因:
java.lang.RuntimeException:读取为JSON“”时出错
位于org.neo4j.rest.graphdb.util.JsonHelper.readJson(JsonHelper.java:57)
位于org.neo4j.rest.graphdb.util.JsonHelper.jsonToSingleValue(JsonHelper.java:62)
位于org.neo4j.rest.graphdb.RequestResult.toEntity(RequestResult.java:114)
位于org.neo4j.rest.graphdb.RequestResult.toMap(RequestResult.java:120)
位于org.neo4j.rest.graphdb.ExecutingRestRequest.toMap(ExecutingRestRequest.java:187)
位于org.neo4j.rest.graphdb.ExecutingRestAPI.query(ExecutingRestAPI.java:475)
位于org.neo4j.rest.graphdb.ExecutingRestAPI.query(ExecutingRestAPI.java:495)
位于org.neo4j.rest.graphdb.RestAPIFacade.query(RestAPIFacade.java:233)
位于org.neo4j.rest.graphdb.query.RestCypherQueryEngine.query(RestCypherQueryEngine.java:50)
位于com.example.Neo4jDatabaseConnector.showNode(Neo4jDatabaseConnector.java:53)
位于com.example.HelloServlet.doGet(HelloServlet.java:22)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
位于org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565)
位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:521)
位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
位于org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
位于org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965)
位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:11
String neo4jURL = System.getenv("NEO4J_URL");
String user="user";
String password="password";
try{
URL url = new URL(neo4jURL);
String userInfo = url.getUserInfo();
String[] userDetails = userInfo.split(":");
user = userDetails[0];
password = userDetails[1];
} catch (MalformedURLException e) {
//
}