Spring boot: шаблон не найден в Freemarker - PullRequest
0 голосов
/ 30 марта 2020

У меня есть приложение весенней загрузки (версия 2.2.5.RELEASE), которое упаковано в файл jar:

Я использую Freemarker (версия 2.3.29) для создания шаблона html, пожалуйста, найдите моя конфигурация ниже:

@Configuration
public class EmailFreemarkerConfig {
     @Primary
      @Bean
        public FreeMarkerConfigurationFactoryBean getFreeMarkerConfig() {
            FreeMarkerConfigurationFactoryBean bean = new FreeMarkerConfigurationFactoryBean();
            bean.setTemplateLoaderPath("/templates/");

            return bean;
        }

Пожалуйста, найдите мой файл pom. xml, который включает расширение файла ftl:

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.csv</include>
                    <include>**/*.vm</include>
                    <include>**/*.jpg</include>
                    <include>**/*.ftl</include>
                </includes>
            </resource>
        </resources>

Когда я упаковал свой флягу, я могу найти файл в следующем путь: BOOT-INF / classes / templates / file12.ftl

Пожалуйста, найдите ниже код, который я генерирую html файл:

   @Autowired
    private Configuration freemarkerConfig;

.....
try {
            t = freemarkerConfig.getTemplate("file12.ftl");
            html = FreeMarkerTemplateUtils.processTemplateIntoString(t, model);
        } catch (IOException | TemplateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }

.... Когда я выполняю jar от следующей команды:

java -jar test-batch-0.0.2-SNAPSHOT.jar

Отображается следующее исключение:

freemarker.template.TemplateNotFoundException: Template not found for name "file12.ftl"

Когда я выполняю ту же кодовую базу в интеграционном тесте на Eclipse, она работает нормально.

Любая идея, что мне здесь не хватает, пожалуйста?

1 Ответ

1 голос
/ 30 марта 2020

На всякий случай, если кто-то другой получит эту проблему, я пропустил classpath в моей конфигурации:

bean.setTemplateLoaderPath("classpath:/templates/");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...