2017-05-16 13 views
0

組み込みNeo4jインスタンスをclojureアプリケーションで作成して使用しようとしています。私は以下のライブラリをインポートしています組み込みDBがボルトコネクタ(neo4j 3.2.0)で始まっていません

(defn make-embedded-db 
[path] 
(let [factory (GraphDatabaseFactory.)] 
    (-> (.newEmbeddedDatabaseBuilder factory path) 
     (.loadPropertiesFromFile "resources/neo4j.conf") 
     (.newGraphDatabase)))) 

(:import [java.io ByteArrayInputStream ByteArrayOutputStream] 
     [org.neo4j.graphdb Direction 
          GraphDatabaseService 
          Node 
          Relationship 
          RelationshipType 
          Transaction] 
     [org.neo4j.graphdb.factory GraphDatabaseFactory]) 

私は次のようにconfファイルで有効にボルトで固定している:

dbms.connector.bolt.enabled=true 
Neo4j API guideのドキュメントに続いて、私は次のコードを作成することができました

make-embedded-db関数を実行すると、次のエラーが発生します。

CompilerException java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, /path/to/graphdb, compiling:(form-init7747172741153885056.clj:1:9)

設定でボルトコネクタを無効にすると、正常に動作しているようです。ボルトコネクタを有効にする主な動機は、graphdbを視覚化して探索するためにneo4jブラウザを接続できることです。

埋め込まれたneo4jの以前のバージョンの投稿には、同様の問題があり、これは廃止予定のWrappingNeoServerBootStrapperを使用して解決されました。誰もがこの問題にぶつかり、正しい方向に私を向ける。

EDITED

(make-embedded-db (io/file "resources/data/graphdb")) 

が実際に与えた、すなわち、しかし、単に機能そのものを呼び出し、この

(def db (make-embedded-db (io/file "resources/data/graphdb"))) 

のようなグローバルVARに組み込みDBインスタンスを割り当てるとき、私は上記のエラーを得ていましたエラー:

VerifyError class org.bouncycastle.asn1.x500.X500Name overrides final method equals

答えて

1

基本的には、エラーのクイックグーグルはclasspathに含まれるbouncycastleへの複数のパスがあるかもしれないことを示唆しています - 実際にこれを確認したgraphdbフォルダのdebug.logを確認してください。私は同じプロジェクトでincanterを含めていましたが、それはこの問題を引き起こしているバーンシーキャスルのための独自の道でもあります。それを削除すると問題が解決しました。

関連する問題