Can't bootRun with new spring-data-couchbase library, fails on jdbc dependency

I’m using spring 2.2.7.RELEASE, and spring dependency management 1.0.9.RELEASE
My build.gradle imports have these:

 implementation 'org.springframework.boot:spring-boot-starter-actuator'
 implementation 'org.springframework.boot:spring-boot-starter-webflux'
 implementation 'org.springframework.data:spring-data-couchbase:4.0.0.RELEASE'
 //implementation 'org.springframework.boot:spring-boot-starter-data-couchbase' I had this previously
 implementation 'org.modelmapper.extensions:modelmapper-spring:2.3.0'
 implementation 'org.springframework.boot:spring-boot-starter-log4j2'
 compileOnly 'org.projectlombok:lombok'
 developmentOnly 'org.springframework.boot:spring-boot-devtools'
 annotationProcessor 'org.projectlombok:lombok'
 testImplementation('org.springframework.boot:spring-boot-starter-test') {
     exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
 }
 testImplementation 'io.projectreactor:reactor-test'

My configuration class has @Configuration and @EnableCouchbaseRepositories annotations.
But now when I try to bootRun with gradle I get this error

java.lang.TypeNotPresentException: Type org.springframework.jdbc.CannotGetJdbcConnectionException not present
	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) ~[?:1.8.0_201]
	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) ~[?:1.8.0_201]
	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) ~[?:1.8.0_201]
	at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) ~[?:1.8.0_201]
	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) ~[?:1.8.0_201]
	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) ~[?:1.8.0_201]
	at sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:90) ~[?:1.8.0_201]
	at java.lang.Class.getGenericSuperclass(Class.java:777) ~[?:1.8.0_201]
	at org.springframework.core.ResolvableType.getSuperType(ResolvableType.java:467) ~[spring-core-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.core.ResolvableType.as(ResolvableType.java:456) ~[spring-core-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.core.ResolvableType.forClass(ResolvableType.java:1041) ~[spring-core-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.boot.diagnostics.AbstractFailureAnalyzer.getCauseType(AbstractFailureAnalyzer.java:56) ~[spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.diagnostics.AbstractFailureAnalyzer.analyze(AbstractFailureAnalyzer.java:33) ~[spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.diagnostics.FailureAnalyzers.analyze(FailureAnalyzers.java:111) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.diagnostics.FailureAnalyzers.reportException(FailureAnalyzers.java:104) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.SpringApplication.reportFailure(SpringApplication.java:816) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:801) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:325) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
	at gt.com.tigo.innovation.tigox.entitycatalog.EntityCatalogApplication.main(EntityCatalogApplication.java:10) [main/:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_201]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_201]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_201]
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.2.7.RELEASE.jar:2.2.7.RELEASE]
Caused by: java.lang.ClassNotFoundException: org.springframework.jdbc.CannotGetJdbcConnectionException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[?:1.8.0_201]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_201]
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[?:1.8.0_201]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_201]
	at java.lang.Class.forName0(Native Method) ~[?:1.8.0_201]
	at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_201]
	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) ~[?:1.8.0_201]
	... 25 more

The last debug line before trowing it, says this

2020-05-12 17:59:50.706 DEBUG 7194 --- [  restartedMain] o.s.b.d.FailureAnalyzers                 : FailureAnalyzer org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer@59e3f554 failed

And some other error stacks after it

Caused by: java.io.FileNotFoundException: class path resource [org/springframework/data/couchbase/config/AbstractCouchbaseDataConfiguration.class] cannot be opened because it does not exist

Actually, before the Hikari error I get:

2020-05-12 17:59:50.674  WARN 7194 --- [  restartedMain] onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/data/couchbase/config/AbstractCouchbaseDataConfiguration.class] cannot be opened because it does not exist

It is fixed in Spring boot 2.3.0

1 Like

Thanks for letting others know!