TemplateInputException

Escenario

Lo habré hecho centenares de veces. Desarrollo en local, pruebas y despliegue en remoto. Según el entorno en el que esté corriendo la aplicación, ésta podrá requerir una configuración distinta. Por ejemplo en un entorno de desarrollo querremos tener el caché deshabilitado o el nivel de los registros más bajo que en uno de producción. Spring boot nos permite gestionar las distintas configuraciones usando múltiples ficheros de propiedades. De este modo para las variables específicas de producción podremos usar un application-prod.properties, y para los experimentos en local, application-local.properties. ¿Cómo sabe la aplicación qué fichero ha de cargar? Primero debemos definir la siguiente clave en application.properties: A continuación establecemos una variable de entorno (en Ubuntu en /etc/environment) con el siguiente valor si queremos que use el properties de producción: ACME_ACTIVE_ENV=prod

Problema

Después de cumplir con los pasos señalados. La aplicación lanza un error cuando invoco cualquiera de sus URLs. En concreto para la página de login, éste: Esto ya me ha pasado, así que lo primero que hago es buscar en este blog pero no encuentro la solución. De modo que esta vez lo dejaré registrado aquí para la posteridad.

Solución

En este caso el problema fue provocado por un despiste, ni en la configuración por defecto (application.properties) ni en la cargada por la variable de entorno estaba definido el prefijo de las plantillas de thymeleaf. Tan fácil como añadirlo:

Publicaciones Similares

  • Cómo crear una cabecera de licencia en Netbeans

    Escenario Un encabezado en los ficheros de código puede ser un requisito del trabajo o del proyecto de código abierto al que contribuyes. O sencillamente te gusta que tus ficheros de código dispongan de un impronta común. Problema En realidad ninguno. Supongo que la mayoría de los editores modernos ofrecen la posibilidad de usar una…

  • Sonata Admin: el calendario no se cierra

    Escenario Incluir un filtro de rango de fechas en SonataAdmin que use un calendario para seleccionar la fecha es más o menos fácil. Primero añadimos el siguiente bloque en el admin de nuestra entidad:

    Y la siguiente clave bajo form_themesen el fichero config/packages/twig.yaml:

    Problema El calendario no se cierra automáticamente cuando se selecciona…

  • Cómo recrear el estado de un componente de React

    Escenario Tenemos una aplicación web usando React 15.6.2. Todo va bien hasta que un nuevo módulo para una nueva funcionalidad requiere una versión >= 16.3. El problema es que al actualizar la biblioteca de programación otro módulo dejó de funcionar. Problema El modulo que dejó de funcionar consistía en una serie de combos que se…

  • Tablas con nombre reservado en entidades en Spring Boot

    Escenario Tenemos una aplicación corriendo sobre Spring Boot que usa Hibernate como ORM. Una de las tablas se llama Group, se utiliza para almacenar los distintos grupos a los que puede pertenecer un usuario. Problema La entidad de java que representa la tabla de grupos tiene esta pinta:

    Sabía que group es una palabra…

  • Hibernate no puede resolver la propiedad…

    Escenario En una aplicación Spring Boot v2.3.4 hay dos entidades Balance y Shop. Una tienda (shop) puede tener varios saldos y un saldo (Balance) ha de estar relacionado con una tienda. Además existen panaderías (Bakery) y sastrerías (TailorShop) que extienden la clase Shop:

    Y necesito saber cuál es la fecha del…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *