Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

478
Visualizações
/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?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

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

over 4 years ago · Santiago Trujillo Relatório

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")); } }
over 4 years ago · Santiago Trujillo Relatório

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; }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda