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