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

470
Vistas
/tmp/tomcat-docbase siempre se crea con un Spring Boot JAR (pero no un WAR)

Desde STS, estoy creando un proyecto 'Web' Spring Boot 1.5.2 estándar. Si ejecuta esta aplicación, se crean dos directorios: el directorio 'base' normal y un directorio 'tomcat-docbase'

 . . . 4096 Mar 29 10:00 tomcat.2743776473678691880.8080 . . . 4096 Mar 29 10:00 tomcat-docbase.76291847886629412.8080

Si cambio este proyecto a un proyecto WAR, solo obtengo el directorio 'base'

 . . . 4096 Mar 29 10:06 tomcat.3131223012454570991.8080

Es fácil anular el directorio base predeterminado usando

 server.tomcat.basedir=.

sin embargo, esto no tiene efecto en tomcat-docbase. Es posible anular tomcat-docbase mediante programación, pero parece un truco.

¿Alguien piensa que esto es un error?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Solución: cree un nombre de carpeta como público en su proyecto, en la misma carpeta con su JAR.

Motivo: del código springboot, no hay configuración para la carpeta docbase. pero puede crear una carpeta raíz común en el nombre de la carpeta de su proyecto como public , static o src/main/webapp , luego springboot nunca volverá a crear la carpeta temporal tomcat-docbase para usted.

 private static final String[] COMMON_DOC_ROOTS = { "src/main/webapp", "public", "static" } ... public final File getValidDirectory() { File file = this.directory; file = (file != null ? file : getWarFileDocumentRoot()); file = (file != null ? file : getExplodedWarFileDocumentRoot()); file = (file != null ? file : getCommonDocumentRoot()); if (file == null && this.logger.isDebugEnabled()) { logNoDocumentRoots(); } else if (this.logger.isDebugEnabled()) { this.logger.debug("Document root: " + file); } return file; } ... private File getCommonDocumentRoot() { for (String commonDocRoot : COMMON_DOC_ROOTS) { File root = new File(commonDocRoot); if (root.exists() && root.isDirectory()) { return root.getAbsoluteFile(); } } return null; }

Enlace: DocumentRoot.java

about 4 years ago · Santiago Trujillo Denunciar

0

Para Spring Boot 2.x+

 @Component public class EmbeddedServletContainerConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> { @Override public void customize(TomcatServletWebServerFactory factory) { factory.setDocumentRoot(new File("/your/path/here")); } }
about 4 years ago · Santiago Trujillo Denunciar

0

Encontré una forma programática de configurar la carpeta docbase con spring y el servidor tomcat incorporado. Debe anular la implementación de TomcatEmbeddedServletContainerFactory de la siguiente manera:

 public @Bean EmbeddedServletContainerFactory embeddedServletContainerFactory() { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory("/app", 8080) { @Override protected void configureContext(Context context, ServletContextInitializer[] initializers) { context.setDocBase("/path/to/your/docbase"); super.configureContext(context, initializers); } }; return factory; }
about 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