0

Heroku と Neo4j を使い始めています。いくつかのノードを挿入し、それらの間の関係を作成するためにローカルで実行されるサーブレットがあります。Heroku で同じコードを使用すると、エラーは発生しませんが、何も起こりません。

Neo4j で webadmin を使用してノードを手動で挿入してから、コードで読み戻そうとしましたが、ローカルで動作しますが、Heroku では何も起こりません。繰り返しますが、エラー メッセージはありません。

コードは次のとおりです。

String dbPATH = System.getenv("NEO4J_URL")+"/db/data";
String dbName = "/mnt/e67f2f314/data/graph.db";
String dbLoc = dbPATH+dbName;
GraphDb=new GraphDatabaseFactory().newEmbeddedDatabase(dbLoc);

それから私は使用します:

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;
}

長さが 0 であるため、null オブジェクトが返されます。heroku run bash を使用してから、java -cp を使用して jar ファイルを実行しています。

heroku 設定: NEO4J_URL: http://xxx:xxx@e67f2f314.hosted.neo4j.org :

newEmbeddedDatabase に渡される dbLoc でいくつかのバリエーションを試しましたが、何も機能しませんでした。

サーブレットを実行するために Heroku で Java と Neo4j を実装するためのリンクをいただければ幸いです。

4

1 に答える 1

0

Heroku 上の Neo4j は REST でしかアクセスできないため、embedded を使用することはできません。したがって、次の依存関係をアプリケーションに修正する必要があります。

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-rest-graphdb</artifactId>
    <version>[your version]</version>
</dependency>

初期化は次のとおりです。

RestAPI restAPI = new RestAPIFacade(System.getenv("NEO4J_URL"), 
   System.getenv("NEO4J_USERNAME"), 
   System.getenv("NEO4J_PASSWORD"));
GraphDatabaseService gds = new RestGraphDatabase(restAPI);
RestCypherQueryEngine rcqe = RestCypherQueryEngine(restAPI);

次に、を使用してサイファーステートメントを実行するだけrcqe.query()です。

于 2013-03-24T10:10:41.427 に答える