Netflix Zuul注解导致spring boot app启动失败
Posted
技术标签:
【中文标题】Netflix Zuul注解导致spring boot app启动失败【英文标题】:Netflix Zuul annotation causes spring boot app fails to start 【发布时间】:2019-02-17 07:11:53 【问题描述】:spring-boot-starter-parent 使用 1.5.9
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
应用:
@RestController
@ComponentScan("com.bmc.common.portal","com.bmc.common.portal.controllers","com.bmc.dem", "com.bmc.costportal.controllers", "com.bmc.cost.portal")
@EnableZuulProxy
@SpringBootApplication
public class PortalApplication
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer()
return (container ->
ErrorPage error400Page = new ErrorPage(HttpStatus.BAD_REQUEST,"/error/400.html");
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED,"/error/401.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND,"/error/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500.html");
container.addErrorPages(error400Page, error401Page,error404Page, error500Page); );
public static void main(String[] args)
SpringApplication.run(PortalApplication.class, args);
错误:
[2018 年 9 月 12 日 20:36:26,702] [错误] org.springframework.boot.SpringApplication:应用程序启动失败 java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Class;)V 在 org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:170) 在 org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:104) 在 org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:70) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122) 在 org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74) 在 org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) 在 org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:325) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:296) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) atorg.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
【问题讨论】:
【参考方案1】:您正在使用来自 1.x 分支的 spring-boot-starter-parent
和来自 2.x 分支的 spring-cloud-starter-netflix-zuul
。 2.x 与 1.x 不兼容。尝试从 2.x 分支升级到 spring-boot-starter-parent
或将 spring-cloud-starter-netflix-zuul
降级到 1.x
【讨论】:
我不能使用 Spring boot 2.x 或更高版本,因为我们与不同的微服务共享会话,而这些服务使用 spring boot 1.5.9 然后使用旧的zuul包。 Zuul 1.4.0 版本修复了这个问题,但导致另一个缺陷***.com/questions/52343355/…以上是关于Netflix Zuul注解导致spring boot app启动失败的主要内容,如果未能解决你的问题,请参考以下文章
spring boot + netflix zuul app给java.lang.ClassNotFoundException:com.netflix.zuul.monitoring.CounterF
Spring Boot 微服务 com.netflix.zuul.exception.ZuulException:转发错误
Zuul spring cloud zuul com.netflix.zuul.exception.ZuulException GENERAL解决方案
在 Spring Boot 中使用 netflix zuul 面临微服务问题