I have a problem with configuration freemarker in spring boot. I have next code in my application class.
@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() {
FreeMarkerConfigurer freemarkerConfig = new FreeMarkerConfigurer();
freemarkerConfig.setTemplateLoaderPath("template");
freemarkerConfig.setDefaultEncoding("UTF-8");
Map<String, Object> freemarkerVariables = new HashMap<String, Object>();
freemarkerVariables.put("layout", freemarkerLayoutDirectives());
freemarkerConfig.setFreemarkerVariables(freemarkerVariables);
return freemarkerConfig;
}
@Bean
public ViewResolver viewResolver() {
FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver();
viewResolver.setCache(false);
viewResolver.setPrefix("");
viewResolver.setSuffix(".ftl");
viewResolver.setContentType("text/html; charset=utf-8");
return viewResolver;
}
@Bean
public Map<String, TemplateModel> freemarkerLayoutDirectives() {
Map<String, TemplateModel> freemarkerLayoutDirectives = new HashMap<String, TemplateModel>();
freemarkerLayoutDirectives.put("extends", new ExtendsDirective());
freemarkerLayoutDirectives.put("block", new BlockDirective());
freemarkerLayoutDirectives.put("put", new PutDirective());
return freemarkerLayoutDirectives;
}
I use this code for configurate freemarker and freemarkerLayoutDirectives (inheratance)
My templates placed in
src/main/webapp/templates
When i build and run app in my local machine all work nice, but when i try to to run same .jar on linux server or in Docker(oficial spring docker) my app crashed when try render view wit next eror:
There was an unexpected error (type=Not Found, status=404).
No message available
My controller code
@RequestMapping(path = "/", method = {RequestMethod.GET})
public String homePage(Model model) String name,
BindingResult errors
) {
return "index";
}