刚刚接手了一个微服务的项目,其中一个服务启动报错,项目依赖了一个对neo4j的封装包(引入bolt和http两种操作协议的driver),但该项目本身并为对neo4j进行任何配置。

首先还原一下错误:

Caused by: org.neo4j.ogm.exception.ServiceNotFoundException: Could not load driver: null.
    at org.neo4j.ogm.service.DriverService.load(DriverService.java:57) ~[neo4j-ogm-api-2.1.2.jar:na]
    at org.neo4j.ogm.service.DriverService.load(DriverService.java:69) ~[neo4j-ogm-api-2.1.2.jar:na]
    at org.neo4j.ogm.service.Components.loadDriver(Components.java:158) ~[neo4j-ogm-api-2.1.2.jar:na]
    at org.neo4j.ogm.service.Components.driver(Components.java:104) ~[neo4j-ogm-api-2.1.2.jar:na]
    at org.neo4j.ogm.session.SessionFactory.<init>(SessionFactory.java:44) ~[neo4j-ogm-core-2.1.2.jar:na]
    at org.neo4j.ogm.session.SessionFactory.<init>(SessionFactory.java:93) ~[neo4j-ogm-core-2.1.2.jar:na]

 

出现这种错误,八成是配置的问题。跟踪源码发现,neo4j的driverLoader会根据spring.data.neo4j.uri配置来判断采用哪种driver。由于项目未对neo4j做任何配置,所以出现该问题。

 

解决:添加spring.data.neo4j.uri配置即可。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐