Etiquetas
Java
(6)
Spring Boot logger
(2)
fichero
(2)
properties
(2)
Embedded Tomcat
(1)
JTextField
(1)
Java JList Persona
(1)
Java Tomcat embebido
(1)
Java abrir imagen
(1)
Java cálculo regresión
(1)
Java leer serializable
(1)
Java load a .war
(1)
Java quitar excepciones consola
(1)
Java read write Serializable
(1)
Java toString cascade
(1)
PropertyConfigurator
(1)
Scheduler
(1)
Server
(1)
Servidor
(1)
Sockets
(1)
Spring Boot
(1)
Spring Boot embebido
(1)
Timer
(1)
TimerTask
(1)
Tomcat certificado pem
(1)
Tomcat embebido
(1)
java Task
(1)
java Timer
(1)
java.util.Properties
(1)
log4j
(1)
log4j.properties
(1)
tcp-ip
(1)
validate field
(1)
vlcj
(1)
analytics
miércoles, 23 de agosto de 2017
Spring Boot load war
Vamos a ver cómo cargar un .war ajeno a nuestro Tomcat Embebido utilizando Spring Boot.
Aquí ya veíamos como cargar Tomcat embebido con Spring Boot
Aquí vimos cómo utilizar el log de Spring Boot
Y aquí vimos cómo hacer que la conexión de Tomcat sea segura
A nuestro fichero de properties de Spring Boot le añadiremos las líneas del path y el context donde cargará el .war
war.context=/MyApp
war.path=MyApp.war
Y en nuestro código, tendremos que añadir lo siguiente
@Bean
public EmbeddedServletContainerFactory servletContainerFactory() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(
Tomcat tomcat) {
// Ensure that the webapps directory exists
new File(tomcat.getServer().getCatalinaBase(), "webapps").mkdirs();
try {
String warContext = properties.getProperty("war.context");
String warPath = properties.getProperty("war.path");
System.out.println("Will load " + warPath + " on " + warContext);
Context context = tomcat.addWebapp(warContext, new File(warPath).getAbsolutePath());
// Allow the webapp to load classes from your fat jar
context.setParentClassLoader(getClass().getClassLoader());
} catch (ServletException ex) {
throw new IllegalStateException("Failed to add webapp", ex);
}
return super.getTomcatEmbeddedServletContainer(tomcat);
}
};
}
Muy fácil no? y no hay que andar peleándose con la configuración de Tomcat. Spring Boot nos hace la gestión casi automáticamente...
Por cierto, asegúrate de tener la siguiente dependencia en tu POM de Maven
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>8.5.5</version>
</dependency>
Suscribirse a:
Entradas (Atom)