Spring Boot 2 升级 java.lang.ClassNotFoundException: EmbeddedServletContainerCustomizer

Spring Boot 2 upgrade java.lang.ClassNotFoundException: EmbeddedServletContainerCustomizer

我最近升级到 Spring Boot 2,我们的应用程序通过 Bamboo 部署到 PCF 上,构建运行正常,但是在部署阶段我收到以下错误:

java.lang.ClassNotFoundException: org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer

我们没有在代码中的任何地方使用 EmbeddedServletContainerCustomizer class,我不知道这是从哪里来的。想知道这是否是 pom 问题?

我已经尝试过这里所有其他类似性质的问题。

org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer 已从 2.X 中的 spring-boot 依赖项中删除。很可能您还没有完全更新依赖项,并且在您的构建中的某处有一个引用 spring-boot-1.X 的依赖项。

它在 Bamboo 上运行的事实意味着您的 CI 已被污染并且不能反映部署环境。

这个问题原来是由于我们将 spring 应用程序打包到 war 中,这需要实现 SpringBootServletInitializer class 来覆盖配置方法:

@Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      return application.sources(WebApplication.class);
  }

这又引发了上述错误。现在采取措施删除它并将我们的应用程序打包为 jar!