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!
我最近升级到 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!