2017-09-22 5 views
0

最新のSpring Data Neo4j(現在5.0.0.RC3)を使用してSpring Boot 2(この段階で2.0.0.M4)をトライアルしているため、動作していないようです。Neo4j OGMでSpring Boot 2.0.0.M4を使用すると、おそらく組み込みドライバが必要になるのはなぜですか?

私は次のエラーを取得:

org.neo4j.ogm.exception.ConfigurationException: Could not load driver class org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver 

を私は組み込みドライバを要求していない、また私は1つをしたいです。私はすでにspring-data-neo4jの依存関係であるボルトドライバを使いたいだけです。

私はSpring Initializrの出力を使用して構築されたエラーを公開するproject to Githubを公開しました。

参考までに、私のbuild.gradleは次のとおりです。プロジェクトを誤って設定していますか?それとも、現在のSpringとNeo4jのマイルストーンビルドにもっと重大な問題がありますか?

buildscript { 
    ext { 
     springBootVersion = '2.0.0.M4' 
    } 
    repositories { 
     mavenCentral() 
     maven { url 'https://repo.spring.io/snapshot' } 
     maven { url 'https://repo.spring.io/milestone' } 
    } 
    dependencies { 
     classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}" 
    } 
} 

apply plugin: 'java' 
apply plugin: 'idea' 
apply plugin: 'org.springframework.boot' 
apply plugin: 'io.spring.dependency-management' 

version = "0.0.1-SNAPSHOT" 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

repositories { 
    mavenLocal() 
    mavenCentral() 
    maven { url "https://repo.spring.io/snapshot" } 
    maven { url "https://repo.spring.io/milestone" } 
} 

dependencies { 
    compile "org.apache.tomcat.embed:tomcat-embed-jasper" 
    compile "org.springframework.boot:spring-boot-starter-web" 
    compile "org.springframework.boot:spring-boot-starter-data-neo4j" 
    runtime "org.springframework.boot:spring-boot-devtools" 
} 

残りのコードは、前述のようにGithubで利用できます。

答えて

2

あなたは、どこにでも組み込みドライバ依存性を持っている

./gradlew dependencies 

出力を参照してneo4j-ogm.*driverを検索していない - ドライバが存在しているだけのNeo4j-OGM-ボルトを。したがって、ボルトのみを使用したい場合は、依存関係を正しく設定してください。あなたの設定が間違っているので

あなたはこの例外を参照してください理由は次のとおりです。

return new SessionFactory("com.example.domain"); 

これは、構成ファイルへのパスを提供しない場合、デフォルトは、組み込みドライバを必要とする一時的組み込みデータベースです - ので、例外。

@Bean 
public org.neo4j.ogm.config.Configuration configuration() { 
    return new org.neo4j.ogm.config.Configuration.Builder(new ClasspathConfigurationSource("ogm.properties")).build(); 
} 
@Bean 
public SessionFactory sessionFactory() { 
    return new SessionFactory(configuration(), "com.example.domain"); 
} 

が、これはOGM唯一のソリューションで、YMLファイルをサポートしていないことを注意してください:

は、次の2つのオプションのSessionFactoryへ

  • パスOGMの構成を有しています。

  • SDN用のスプリングブート自動設定を使用してください。Neo4jConfigurationクラスを削除するだけで、SpringブートはSessionFactoryというBeanが存在しないことを検出し、必要な(トランザクションマネージャを含む)すべてを構成します。 Applicationクラスをそのまま使用し、application.ymlをそのまま使用してください。

+0

ああ、はい、私の好きなものです。ありがとう、私はこれを試してみます。 – ben3000

+0

問題をはっきりと修正してくれてありがとう、ありがとう。RTFMをもっと慎重に思い出すことができます。 – ben3000

関連する問題