Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.4K
Views
Thymeleaf: es posible que la plantilla no exista o que ninguno de los solucionadores de plantilla configurados pueda acceder a ella

tengo este codigo:

 private static final String EMAIL_INLINEIMAGE_TEMPLATE_NAME = "templateemail.html"; @Bean public TemplateEngine emailTemplateEngine() { templateEngine = new SpringTemplateEngine(); templateEngine.addTemplateResolver(this.htmlTemplateResolver()); ) templateEngine.setTemplateEngineMessageSource(this.messageSource); return templateEngine; } private static ITemplateResolver htmlTemplateResolver() { final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(); templateResolver.setOrder(Integer.valueOf(0)); templateResolver.setPrefix("classpath:/templates/"); templateResolver.setSuffix(".html"); templateResolver.setTemplateMode(TemplateResolver.DEFAULT_TEMPLATE_MODE); templateResolver.setCharacterEncoding("UTF-8"); templateResolver.setCacheable(false); return templateResolver; } public void sendEmail(String emailAddress, String title, String body, Locale local, String image) { if (Boolean.parseBoolean(isEmailServiceActivated)) { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper mailMsg = new MimeMessageHelper(mimeMessage); try { mailMsg.setFrom(EMAIL_USERNAME); mailMsg.setTo(emailAddress); mailMsg.setSubject(title); // Prepare the evaluation context ctx.setLocale(local); ctx.setVariable("imageHeaderResourceName", HEADER_LOGO_IMAGE); ctx.setVariable("body", body); ctx.setVariable("imageResourceName", image); final String htmlContent = this.templateEngine.process(new ClassPathResource(EMAIL_INLINEIMAGE_TEMPLATE_NAME).getPath(), ctx); mailMsg.setText(htmlContent, true ); mailMsg.addInline(HEADER_LOGO_IMAGE, new ClassPathResource(HEADER_LOGO_IMAGE ) , PNG_MIME); mailMsg.addInline(image, new ClassPathResource(image) , PNG_MIME); } catch (MessagingException e) { e.printStackTrace(); } mailSender.send(mimeMessage); } }

Tengo el archivo templateemail.html en el directorio /templates/. cuando lanzo el método de envío de correo electrónico, tengo esta excepción:

 org.thymeleaf.exceptions.TemplateInputException: Error resolving template "templateemail.html", template might not exist or might not be accessible by any of the configured Template Resolvers

No sé si es porque templateEngine no puede encontrar mi archivo (intento incluso con la ruta absoluta de tomcat y el directorio / bin pero de ninguna manera) o no he configurado el Template Resolver correcto. Muchas gracias por su ayuda. yo

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Ahora funciona eliminando ".html" en el nombre de la plantilla (el archivo tiene la extensión html)

 private static final String EMAIL_INLINEIMAGE_TEMPLATE_NAME = "templateemail"
over 4 years ago · Santiago Trujillo Report

0

Tenga en cuenta el comportamiento no multiplataforma que puede ocurrir: en Windows, la plantilla CamelCase.html se resolvió, ¡pero no en Ubuntu Linux! Allí tuve que renombrarlo a camelcase.html, todos los caracteres en minúsculas

over 4 years ago · Santiago Trujillo Report

0

Tuve el mismo problema recientemente. Mi problema era que mi plantilla tenía referencias a otras plantillas que comenzaban con / .

Por ejemplo:

 <html ... th:include="/internal/layout-normal :: page"> <-- failed <html ... th:include="internal/layout-normal :: page"> <-- worked

Ambas variantes funcionaron sin problemas cuando ejecuté la aplicación desde IntelliJ. Sin embargo, cuando se empaqueta y se ejecuta a través java -jar la primera línea falla.

Eliminar el / resolvió el problema para mí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!