Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

414
Vistas
IllegalStateException después de actualizar la aplicación web a Spring Boot 2.4

Mi aplicación web ya no se inicia después de actualizar a Spring Boot 2.4. Está arrojando el siguiente error:

 Unable to locate the default servlet for serving static content. Please set the 'defaultServletName' property explicitly.

Estoy usando el siguiente código para cambiar la ruta de contexto y mi investigación me indica que ese es el "culpable" (cambiar la ruta de contexto):

 @Bean public ServletWebServerFactory servletContainer() { String tomcatPort = environment.getProperty("tomcatPort"); TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); tomcat.setPort(tomcatPort != null ? Integer.parseInt(tomcatPort) : 8080); tomcat.setContextPath("/Carbon"); tomcat.setBaseDirectory(new File(System.getenv("MDHIS3_HOME"))); setTomcatProtocol(tomcat); return tomcat; }

Tengo el siguiente método y puedo ver que se puede usar para pasar un DefaultServletName pero no tengo idea de qué valor se supone que debo pasar:

 @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); }

Esto funcionó perfectamente en Spring Boot 2.3.4. ¿Qué valor paso allí? ¿Es el nombre del controlador principal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Como se describe en las notas de la versión de Spring Boot 2.4 , el DefaultServlet proporcionado por el contenedor de Servlet incrustado ya no está registrado de forma predeterminada. Si su aplicación lo necesita, como parece necesitar el suyo, puede habilitarlo configurando server.servlet.register-default-servlet en true .

Alternativamente, puede configurarlo programáticamente usando un bean WebServerFactoryCustomizer :

 @Bean WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> enableDefaultServlet() { return (factory) -> factory.setRegisterDefaultServlet(true); }

Tenga en cuenta que la configuración debe aplicarse a través de un personalizador para que la configuración predeterminada basada en propiedades no la sobrescriba.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda