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

时间:2018-06-13 11:01:07

标签: java spring spring-boot cloudfoundry bamboo

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

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

我们没有在代码中的任何地方使用EmbeddedServletContainerCustomizer类,我无法弄清楚它来自何处。想知道这是否是一个pom问题?

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

2 个答案:

答案 0 :(得分:2)

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

它适用于Bamboo的事实意味着您的CI受到污染,并且不能反映部署环境。

答案 1 :(得分:1)

这个问题原因是我们将spring应用程序打包成一个战争,需要实现@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(WebApplication.class); } 类来覆盖configure方法:

@BeforeEach
void beforeTestExecution() {
        DesiredCapabilities desiredCapabilities = DesiredCapabilities.internetExplorer();
        desiredCapabilities.setCapability(
                CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
        driver = new InternetExplorerDriver(desiredCapabilities);

        // Navigate to URL
        driver.get("http://www.yoursite.com");

        // Maximize your website window before test.
        driver.manage().window().maximize();
}

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