我使用默认的Tomcat嵌入式容器。但是,在一些测试中,我使用Wiremock(在下面使用Jetty)。这使我的集成测试针对Jetty服务器而不是Tomcat运行。
有什么方法可以迫使Spring Boot坚持使用Tomcat?
正如StéphaneNicoll在这里所说,您应该定义一个空白TomcatEmbeddedServletContainerFactory
@Bean
仅仅添加这种豆对我来说还不够。我有“多个豆子”例外。当我将其添加到自定义测试启动器中时,我只需要确保它是在EmbeddedServletContainerAutoConfiguration
解决问题之前添加的,即:
@Configuration
@AutoConfigureBefore(EmbeddedServletContainerAutoConfiguration.class)
public class ForceTomcatAutoConfiguration {
@Bean
TomcatEmbeddedServletContainerFactory tomcat() {
return new TomcatEmbeddedServletContainerFactory();
}
}
编辑:在Spring Boot 2.0中对我有用:
@Configuration
@AutoConfigureBefore(ServletWebServerFactoryAutoConfiguration.class)
public class ForceTomcatAutoConfiguration {
@Bean
TomcatServletWebServerFactory tomcat() {
return new TomcatServletWebServerFactory();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句