0
JDK 1.6 및 Heroku를 사용하여 Neo4j (1.9) 오류 및 RestApi를 도와 줄 수있는 사람이 누구입니까?RestAPI 및 Neo4j
코드의 목적은 자바로 cypher 및 Neo4j를 사용하는 기능을 데모하는 것입니다. 헤로 쿠에서만 RestAPI 만 작동한다는 것을 알고 있습니다.
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)
코드를 정리할 수 있습니까? 현재 어떤 부분이 활발히 호출되는지, 어떤 부분이 불투명한지는 명확하지 않습니다. 일반적으로 RestAPI/RestGraphDatabase 부분은 정상적으로 보입니다. NEO4J_URL은 무엇입니까? 환경 변수가 올바르게 설정되어 있다면'heroku config'로 확인할 수 있습니까? –
공개 무효 showNode() { \t \t \t \t \t restAPI = 새로운 RestAPIFacade (System.getenv ("NEO4J_URL") \t \t \t \t System.getenv ("NEO4J_USERNAME") \t \t \t \t 시스템 .getenv ("NEO4J_PASSWORD")); \t \t \t \t GraphDb = new RestGraphDatabase (restAPI); \t \t \t \t RestCypherQueryEngine rcqe = new RestCypherQueryEngine (restAPI); \t rcqe.query (createNodes, null); \t \t \t \t \t \t \t } \t \t 공개 무효 종료() { \t \t GraphDb.shutdown(); \t \t \t} } –
IRON_CACHE_PROJECT_ID : XXX IRON_CACHE_TOKEN : RWR-XXX JAVA_OPTS : -Xmx384m -Xss512k -XX : + UseCompressedOops MAVEN_OPTS : -Xmx384m -Xss512k -XX : + UseCompressedOops NEO4J_URL : HTTP : // [email protected]sted.neo4j.org : 7489 경로 : /app/.jdk/bin:/usr/local/bin:/usr/bin:/bin REDISCLOUD_URL : redis : // rediscloud : xxx @ pub-redis -15110.us-east-1-2.3.ec2.garantiadata.com:15110 TREASURE_DATA_API_KEY : xxx –