2017-03-29 2 views
-1

Die Anwendung hängt von einer Reihe von Federdatenprojekten ab, einschließlich Neo4j, Solr und Jpa. Ich musste spring-data-solr vor kurzem zu Snapshot-3.0.0.M1 aktualisieren (um einen anderen Abhängigkeitskonflikt zu beseitigen). Ich denke, eine der transitiven Abhängigkeiten verursacht einen Konflikt mit neo4j. Wenn ich spring-neo4j aus dem Projekt entferne, scheint der Fehler (siehe unten) zu verschwinden.Kein qualifizierendes Bean des Typs 'java.lang.Class <org.springframework.data.repository.Repository <?, ?>>'

Ich habe ein Beispielprojekt beigefügt, das das Problem neu erstellt. Führen Sie Testklasse AccountServiceJpaTester.testSaveAccount()

Download Beispielprojekt von here

Verursacht durch: org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine Warte Bohnen vom Typ 'java.lang.Class>' zur Verfügung: erwartet mindestens eine Bohne, die sich als Autowire-Kandidat qualifiziert. Abhängigkeits Anmerkungen: { } bei org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound (DefaultListableBeanFactory.java:1456) bei org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1087) bei org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1049) bei org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument (ConstructorResolver.java:833) bei org.springframework.beans .factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:740) ... 60 mehr

Antwort

1

Federdaten proj ect basieren alle auf einer gemeinsamen Infrastruktur (Federdaten Commons). Wenn Sie mehrere Projekte in der Frühjahrsdatenfamilie verwenden (in Ihrem Fall neo4j, solr, jpa), müssen Sie sicherstellen, dass alle auf einer gemeinsamen Version der Infrastruktur basieren.

In Ihrem Fall basiert spring-data-solr 3.0.0 M1 auf spring-data-commons 2.x, während JPA und Neo4j spring-data-commons 1.x verwenden.

Eine gute Möglichkeit, dies zu verwalten, ist die Verwendung der Federdaten-Stückliste. Dies wird auf der spring data homepage erklärt. To manage the portfolio, a BOM (Bill of Materials - see this example) is published with a curated set of dependencies on the individual project Wenn Sie auf neuere Versionen als die in der Stückliste enthaltenen aktualisieren müssen, stellen Sie sicher, dass sie auf der gleichen Infrastrukturversion basieren.

Verwandte Themen