2016-08-19 3 views
2

스프링 부트에서이 오류가 발생합니다.스프링 부트/데이터와 함께 볼트 드라이버를 사용할 수있는 방법 Neo4j

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

속성 구성하거나 ENV 할 때 변수

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

나는 드라이버

<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

를 추가 않았다 어떻게 수동으로 드라이버를 설정할 수 있습니다 부팅/데이터로 작업 하시겠습니까? 예를 제공해주십시오.

+0

이 응용 프로그램은 지원되는 것처럼 그렇게 보이는, neo4j-OGM + 스프링 부팅 (그루비를 사용하지만) 보여 것 같다. 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는 http를 사용하고있는 것처럼 보이며 스프링 부트 특성이 아닌 것처럼 보입니다. 그러나이를 수행하는 방법이 될 수도 있습니다 – xenoterracide

답변

5

현재 Neo4j 용 스프링 부트 스타터는 bolt 프로토콜을 감지하지 못하므로 볼트 드라이버를 자동 구성 할 수 없습니다. 그러나 응용 프로그램 컨텍스트에서 Configuration Bean을 제공하면 Spring Boot는이를 사용하여 드라이버 자체를 자동 구성하지 않습니다. 당신이 구성에서 드라이버 이름을 선언 할 필요가 없습니다

@Bean 
public Configuration getConfiguration() { 
    Configuration config = new Configuration(); 
    config 
     .driverConfiguration() 
     .setURI("bolt://localhost"); 
    return config; 
} 

주, 그것은 URI에서 자동 감지됩니다

이것은 당신이 가야하기에 충분합니다.

또한 Configuration 클래스는 실제로 org.neo4j.ogm.config.Configuration이며 명시 적으로 사용해야 할 수도 있습니다.

+2

등록 정보는 향후 독자를위한 부트 1.4.1에서 작동합니다 – xenoterracide

-1

구성에서 드라이버 이름을 선언 할 필요가 없으므로 URI에서 자동 감지됩니다.

이 경우 ''이 (가) 알 수없는 프로토콜이됩니다.

문제 DriverConfiguration.setURI()userName, password를 검색 할 java.net.URL를 인스턴스화하려고하고 드라이버를 설정하는 것입니다. java.net.URI을 사용하는 것이 더 좋다고 생각합니다. 연결을 열 필요가 없기 때문에 정보를 얻는 것뿐입니다.

확인이 게시물은 : why does java's URL class not recognize certain protocols?

관련 문제