2016-08-19 1 views
2

Ich bekomme diesen Fehler von Spring Boot.Wie kann ich den Bolt-Treiber mit Spring Boot/Daten Neo4j

Could not deduce driver to use based on URI 'bolt://localhost:7687 

, wenn sie mit Eigenschaften zu konfigurieren versuchen, oder env Variable

spring.data.neo4j.uri=bolt://localhost:7687 

Ich habe fügen Sie den Treiber

<dependency> 
     <scope>runtime</scope> 
     <groupId>org.neo4j</groupId> 
     <artifactId>neo4j-ogm-bolt-driver</artifactId> 
     <version>${neo4j-ogm.version}</version> 
    </dependency> 

I imagine spring boot doesn't support autoconfiguration for this yet

Wie kann ich diesen Treiber manuell mit Spring Boot/Daten arbeiten? Bitte geben Sie ein Beispiel an.

+0

Diese App scheint Neo4j-OGM + Federverschluß (wenn auch mit Groovy) zu zeigen, so sieht aus wie es unterstützt wird. https://github.com/neo4j-examples/neo4j-ogm-university/tree/2.0 –

+0

@ icyrock.com https://github.com/neo4j-examples/neo4j-ogm-university/blob/2.0/src/ main/resources/ogm.properties sieht so aus, als würde es http benutzen und das sind keine Spring-Boot-Eigenschaften, aber es könnte ein Weg sein, es zu tun – xenoterracide

Antwort

5

Der aktuelle Spring Boot-Starter für Neo4j erkennt das Protokoll bolt nicht und kann daher den Bolt-Treiber nicht automatisch konfigurieren. Wenn Sie jedoch eine Konfigurations-Bean in Ihrem Anwendungskontext bereitstellen, verwendet Spring Boot diese und versucht nicht, den Treiber selbst zu konfigurieren.

gehen Dies sollte ausreichen, um Sie zu erhalten:

den Treibernamen erklären müssen
@Bean 
public Configuration getConfiguration() { 
    Configuration config = new Configuration(); 
    config 
     .driverConfiguration() 
     .setURI("bolt://localhost"); 
    return config; 
} 

Beachten Sie, dass Sie nicht in der Konfiguration, wird es von der URI automatisch erkannt werden.

Beachten Sie auch die Configuration Klasse ist eigentlich org.neo4j.ogm.config.Configuration, die Sie wahrscheinlich explizit verwenden müssen.

+2

Eigenschaften funktioniert ab dem Boot 1.4.1 für zukünftige Leser – xenoterracide

-1

Beachten Sie, dass Sie den Treibernamen nicht in der Konfiguration deklarieren müssen, er wird automatisch vom URI erkannt.

Ich bekomme 'unbekanntes Protokoll: Schraube' in diesem Fall.

Problem ist, dass DriverConfiguration.setURI() wird versuchen java.net.URL zu instanziiert userName abzurufen, password und Fahrer eingestellt werden. Ich denke, es ist besser, java.net.URI zu verwenden, weil wir keine Verbindung öffnen müssen, aber nur, um Informationen zu erhalten.

Überprüfen Sie diesen Eintrag: why does java's URL class not recognize certain protocols?

Verwandte Themen