Estoy tratando de actualizar Spring Boot 1.4 a 1.5.2 . Por lo que puedo decir, he seguido las pautas de actualización.
En realidad, hay dos problemas, el principal que tiene que ver con mongo integrado:
EmbeddedServletContainerFactory ahora debe crearse explícitamente
En la clase de configuración de prueba, tuve que agregar esto:
@Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); factory.setPort(port); factory.setSessionTimeout(50, TimeUnit.MINUTES); return factory; }No tenía que hacer esto antes. Tuve que incluirlo porque cuando ejecuto una prueba me da este error:
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
Mongo integrado no se iniciará
Ahora me sale este error:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'embeddedMongoServer' available
No tengo idea de dónde debería agregar este bean (y, de hecho, por qué debería agregarlo)
Mi configuración actual
Tengo varias pruebas que amplían BaseIT , que comienza así:
@RunWith(SpringRunner.class) @DataMongoTest @SpringBootTest(classes = {TestConfig.class, TestMongoConfig.class},, webEnvironment= SpringBootTest.WebEnvironment.DEFINED_PORT, value = " {$server.port}") @ActiveProfiles("test") public abstract class BaseIT {...}Clase de configuración de Mongo:
@Configuration @EnableAutoConfiguration(exclude = { EmbeddedMongoAutoConfiguration.class }) @EnableMongoRepositories(basePackages = "...") public class TestMongoConfig { @Bean public MongoClient mongo(){...} @Bean public MongodProcess mongodProcess(){...} @Bean public MongodExecutable mongodExecutable(){...} @Bean public IMongodConfig mongodConfig(){...} @Bean public MongodStarter mongodStarter(){...} }Clase de configuración de prueba:
@Configuration @EnableAutoConfiguration(exclude = {EmbeddedMongoAutoConfiguration.class}) @ComponentScan(value = {...}) @EnableMongoRepositories(basePackages = {...) @EnableWebMvc public class TestConfig extends WebMvcConfigurerAdapter {...}