Невозможно использовать реактивный WebClient Spring в загрузочном веб-приложении Spring, которое работает на Tomcat.Сам запуск приложения не выполняется из-за неразрешенных зависимостей.
Я посмотрел на https://github.com/spring-projects/spring-boot/issues/9690, но, к сожалению, это не вариант для меня, так как я не могу установить тип WebApplication на None
Мой gradlefile:
dependencies {
compile(group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa') {
exclude(module: 'tomcat-juli')
}
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web'
compile group: 'org.springframework.session', name: 'spring-session'
compile group: 'org.hibernate', name: 'hibernate-java8'
compile group: 'org.hibernate', name: 'hibernate-validator', version: '5.2.4.Final'
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-guava'
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-hibernate5'
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310'
compile group: 'com.google.guava', name: 'guava'
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'
compile group: 'org.postgresql', name: 'postgresql'
compile group: 'io.jsonwebtoken', name: 'jjwt', version:'0.9.0'
compile group: 'com.nimbusds', name: 'nimbus-jose-jwt', version:'5.12'
// Spring managed dependency is not working, so resorted to using specific version
// compile('org.springframework.boot:spring-boot-starter-webflux')
compile group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: '2.1.4.RELEASE'
/*
compile group: 'org.springframework', name: 'spring-web-reactive', version: '5.0.0.M1'
compile group: 'org.springframework', name: 'spring-web', version: '5.1.6.RELEASE'
*/
implementation 'com.auth0:jwks-rsa:0.7.0
}
bootRepackage {
enabled = false
}
Ошибка:
Caused by: java.lang.NoClassDefFoundError: org/springframework/http/client/reactive/ClientHttpConnector
at org.springframework.web.reactive.function.client.WebClient.create(WebClient.java:144)
Затем я попытался добавить,
compile group: 'org.springframework', name: 'spring-web-reactive', version: '5.0.0.M1'
Который потом жаловался на что-то еще, что заставило меня добавить
compile group: 'org.springframework', name: 'spring-web', version: '5.1.6.RELEASE'
Но при запуске моего приложения появляется другая ошибка, которая заставляет меня думать, что есть какая-то другая проблема.
Если быть точным, я просто хочу вызвать MicroService с использованием Reactive WebClient из другогоMicroService (веб-приложение на основе Spring Boot).
Использование RestTemplate работает нормально , но я просто хотел попробовать реактивный WebClient и застрял с ошибкой.
Из-заКак мы размещаем наши зависимости, управляемые зависимости не работают.Наш сервер зависимостей не может их разрешить.Это причина наличия конкретной версии загрузочных зависимостей