今天在做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