У меня есть приложение вверх и работает с использованием Spring Boot (Maven). В настоящее время настроен как WAR с Stand Alone Tomcat. Все работает нормально.Spring MVC 4 - Tiles3 - Tiles-extras сбой при сбоях applicaiton
Если я добавлю tiles-extras
v3.0.5, приложение выйдет из строя со следующей ошибкой. Я не использую FreeMarker в приложении. JSP & Плитка только.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Cannot find template location(s): [classpath:/templates/] (please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)
EDIT Добавление viewResolver упаковывают это необходимо.
@Bean
public UrlBasedViewResolver viewResolver() {
UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
viewResolver.setViewClass(TilesView.class);
viewResolver.setOrder(0);
return viewResolver;
}
Изменение Реализовано
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>${tiles.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-freemarker</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-velocity</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-request-mustache</artifactId>
</exclusion>
</exclusions>
</dependency>
Новая ошибка
Caused by: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
Исключить Freemarker как зависимость от 'tiles-extra'. Свободная маркерная зависимость запускает регистрацию некоторых компонентов Freemarker в Spring Boot. –
Другие советы вместо использования 'UrlBasedViewResolver' используют' TilesViewResolver', сохраняет несколько строк кода. –
Ваш первый комментарий был мертв. Это решило проблему с Spring Boot. И вы правы, он сохраняет строку :-) Мне все еще нужен setOrder. – code