2016-11-28 24 views
0

私は、Springブート1.4.2.M1および@ EnableExperimentalNeo4jRepositoriesに問題があります。NoUniqueBeanDefinitionException @ EnableExperimentalNeo4jRepositories注釈付きおよびSpringBoot 1.4.2

2つの豆、1つのスプリングブーツ、1つのスプリングデータ-neo4jの間に競合があるようです。ここで

スタックトレースの抜粋です:

18:12:15.891 [main] DEBUG o.s.b.d.LoggingFailureAnalysisReporter - Application failed to start due to an exception 
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.neo4j.ogm.session.Session' available: expected single matching bean but found 2: getSession,org.springframework.data.neo4j.transaction.SharedSessionCreator#0 

、別の...

Parameter 0 of method setSession in org.springframework.data.neo4j.repository.support.Neo4jRepositoryFactoryBean required a single bean, but 2 were found: 
    - getSession: defined in BeanDefinition defined in class path resource [org/springframework/boot/autoconfigure/data/neo4j/Neo4jDataAutoConfiguration$SpringBootNeo4jConfiguration.class] 
    - org.springframework.data.neo4j.transaction.SharedSessionCreator#0: defined by method 'createSharedSession' in null 

誰もがこれを解決するためにどのように任意のアイデアを持っていますか?以下は

は、あなたが春データのNeo4j(SDN)バージョン4.2.0.M1を使用している必要があり、私のNeo4j設定

package com.domain.core.context; 

import javax.annotation.PostConstruct; 

import org.neo4j.ogm.session.Session; 
import org.neo4j.ogm.session.SessionFactory; 
import org.neo4j.ogm.session.event.Event; 
import org.neo4j.ogm.session.event.EventListenerAdapter; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.data.neo4j.repository.config.EnableExperimentalNeo4jRepositories; 
import org.springframework.data.neo4j.transaction.Neo4jTransactionManager; 
import org.springframework.transaction.annotation.EnableTransactionManagement; 

import lombok.extern.slf4j.Slf4j; 

@Slf4j 
@Configuration 
@ComponentScan("com.domain") 
@EnableExperimentalNeo4jRepositories(basePackages = "com.domain.core.repository") 
@EnableTransactionManagement 
@SpringBootApplication(exclude = Neo4jDataAutoConfiguration.class) 
public class TestPersistenceContext { 

    @PostConstruct 
    public void init() { 
     log.info("TheScene.Co: Initializing Test Neo4jConfig ..."); 
    } 

    @Bean 
    public Neo4jTransactionManager transactionManager() throws Exception { 
     return new Neo4jTransactionManager(sessionFactory()); 
    } 

    @Bean 
    public SessionFactory sessionFactory() { 
     return new SessionFactory(getConfiguration(), "com.domain") { 

      @Override 
      public Session openSession() { 
       Session session = super.openSession(); 
       session.register(new EventListenerAdapter() { 
        @Override 
        public void onPreSave(Event event) { 
         // do something - like set an id on an object 
         log.debug("***** Saving domain object ********"); 
        } 
       }); 

       return session; 
      } 
     }; 
    } 


    @Bean 
    public org.neo4j.ogm.config.Configuration getConfiguration() { 
     org.neo4j.ogm.config.Configuration config = new org.neo4j.ogm.config.Configuration(); 
     config.driverConfiguration().setCredentials("neo4j", "password") 
       .setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver"); 

     return config; 
    } 

} 

答えて

1

です。このマイルストーンリリースは、4.1.xからのいくつかの大きな変更に関するフィードバックを得るために出されました。

SDN 4.2.0.RC1は今週末に出ていますが、今のところ4.2.0.BUILD-SNAPSHOTは、実際にはかなり安定しており、デーセーバーのスプリングデータ用リリース列Ingallsをリリースしています。

I have written a guide SDN 4.0/4.1から来ているユーザーのために、スナップショットビルドにアップグレードする方法を説明します。

このガイドではthere is a linkのサンプルプロジェクトブランチに、このバージョンをSpringブートで動作させる方法を示しています(1.4.x)。

Spring Boot 1.5の次期リリースでは、SDN 4.2ですぐに使用できるように、すべての自動設定を更新しました。 Spring Bootのドキュメントをリリースに近づける予定です。

関連する問題