今天在做springboot整合成springCloud并注冊到consul中時,發現若注冊到consule中成功 則不能啟動swagger,且不能提供任何API服務,要是能提供API服務則不能注冊到consule中,并報錯“
- Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. "+
- "Please remove spring-boot-starter-web dependency
”
分析了一下,發現在如下代碼中會報這個log資訊
- @Configuration
- @AutoConfigureBefore(GatewayAutoConfiguration.class)
- public class GatewayClassPathWarningAutoConfiguration {
- private static final Log log = LogFactory.getLog(GatewayClassPathWarningAutoConfiguration.class);
- private static final String BORDER = "\n\n**********************************************************\n\n";
- @Configuration
- @ConditionalOnClass(name = "org.springframework.web.servlet.DispatcherServlet")
- protected static class SpringMvcFoundOnClasspathConfiguration {
- public SpringMvcFoundOnClasspathConfiguration() {
- log.warn(BORDER+"Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. "+
- "Please remove spring-boot-starter-web dependency."+BORDER);
- }
- }
- @Configuration
- @ConditionalOnMissingClass("org.springframework.web.reactive.DispatcherHandler")
- protected static class WebfluxMissingFromClasspathConfiguration {
- public WebfluxMissingFromClasspathConfiguration() {
- log.warn(BORDER+"Spring Webflux is missing from the classpath, which is required for Spring Cloud Gateway at this time. "+
- "Please add spring-boot-starter-webflux dependency."+BORDER);
- }
- }
- }
最終,我們分析是swagger啟動時所要的jar包和springCloud有所沖突,修改我們的POM檔案如下,主要是版本的問題:
發現consul 1.2版本需要和SpringCloud的Finchley版本才能整合
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.0.3.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>Finchley.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
原文位址:https://blog.csdn.net/qq116165600/article/details/90640451