2012-02-21 8 views
16

私はNeo4Jを初めて使用しています。私は何時間もグーグルで質問に答えられませんでした。Javaを使用してローカルにインストールされたneo4jサーバーに接続する方法

これまではチュートリアルに従っていましたが、今ではNeo4jの使用方法と使用方法について基本的に理解しています。今、私はhello-worldコードを変更し、ローカルにインストールされたNeo4Jサーバーに接続しようとしています。http://127.0.0.1:7474からアクセスできます。

オリジナルの接続(組み込みデータベースを使用して):\のNeo4j \データ\のgraph.dbを代わりに:質問がある

GraphDatabaseService gdb = new EmbeddedGraphDatabase("c:\\helloworld\\data\\graph.db"); 

はCで私の「サーバー」のデータベースに接続するには、この行を変更することがとにかくあり?サーバーは現在Windowsサービスとして実行されており、Web管理ツールを使用してそのデータベースを表示できます。現時点では、サーバーとクライアントアプリケーションが同じマシン上で実行されているため、REST APIの使用には興味がありません。私はここで何かを明らかに欠けているように私は感じ

...

答えて

3

Windowsサービスは、RESTインターフェースを公開します。

埋め込みインターフェイスは完全に異なります。データベースファイル構造をポイントし、Javaメソッド呼び出しを使用してアクセスします。

同じデータを指すと同時に実行している場合、悪いことが起こる可能性があります(実際には、これを検出して防止します)。したがって、おそらくサービスを停止したり、このインスタンスから別のディレクトリにデータをバックアップしたりする必要があります。次に、このディレクトリを指すようにEmbeddedGraphDatabaseコンストラクタを編集します。

The manualは、おそらく見てきたように、組み込みJavaインターフェイスについて説明しています。 this sectionも参照してください。ここでは、かなり優れたWebベースの管理インターフェイスについて簡単に触れています。

+0

おかげで、サービスを停止し、「サーバ」dbディレクトリに私のEmbeddedGrapDatabaseのコンストラクタを指してのご提案は、トリックを行いました。 – PFrank

4

ラッパーにサンプルコードが見つかりませんでしたので、ここで最後に行っています。 7474だけサーバーを実行しているようにWebAdminのツールを参照してくださいだけでなく、(コマンドを読み取るための入力ストリームを使用して、独自のシンプルなAPIを書く)あなたの通常のJavaコードを続行:

EmbeddedGraphDatabase graphDb = new EmbeddedGraphDatabase("C:\\neo4j\\data\\graph.db"); 
WrappingNeoServerBootstrapper srv = new WrappingNeoServerBootstrapper(graphDb); 
srv.start(); 
try { 
    while (System.in.read() != 46) { 
    // wait until we send a period (.) to kill the server 
    } 
} catch (IOException e) {} 
srv.stop(); 

これは、ローカルホストを訪問することができます。

1

私は古い投稿を知っていますが、それでも私の答えを追加しています。 Neo4jConnectionを使用できます。 サンプルコードジャージークライアントのHttpBasicAuthFilter

あなたのパラメータのようなものでなければなりません使用して終了した

Neo4jConnection connect=null; 
connect = new Driver(). connect(DB_URL, new Properties()); 
ResultSet resultSet=connect.createStatement().executeQuery("YOUR QUERY") 
+0

このNeo4jConnectionクラスはどこで見つかりましたか? – mattdeboard

+0

見てください[ここ](http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded-setup.html) – user299791

+0

サーバーライブラリ全体を追加する必要があるのですか?この構成でNode and Relationshipを使用できますか? –

1

:そのまだない場合は最新のジャージークライアントがあなたのMVNポンポンにこれを追加することで見つけることができる

  public static final String DATABASE_ENDPOINT = "http://localhost:7474/db/data"; 

      public static final String DATABASE_USERNAME = "neo4j"; 

      public static final String DATABASE_PASSWORD = "3c0a0a6ea1sdsdsdsdsdsdsdsdf2a94d"; 

     private String callRest(String query) { 
       final String cypherUrl = ENDPOINT + "/cypher"; 
       Client c = Client.create(); 
       c.addFilter(new HTTPBasicAuthFilter(USERNAME, PASSWORD)); 
       WebResource resource = c.resource(cypherUrl); 
       String request = "{\"query\":\"" + query + "\"}"; 
       ClientResponse response = resource.accept(MediaType.APPLICATION_JSON) 
         .type(MediaType.APPLICATION_JSON).entity(request) 
         .post(ClientResponse.class); 
       String object = response.getEntity(String.class); 
       response.close(); 
       return object; 
     } 

あなたの依存関係のツリーで。

  <dependency> 
       <groupId>com.sun.jersey</groupId> 
       <artifactId>jersey-client</artifactId> 
       <version>1.18.3</version> 
      </dependency> 

参照:https://stackoverflow.com/posts/28303766

関連する問題