Velocity 2.0 не может найти ресурс шаблона в jar - PullRequest
0 голосов
/ 25 июня 2018

Я работаю с Velocity 2.0 в Spring Boot 5 для отправки электронной почты. Я загружаю шаблоны из src / main / resources / email / и определяю VelocityEngine как bean-компонент в файле config.xml

<bean id="velocityEngine" class="org.apache.velocity.app.VelocityEngine">
    <property name="properties">
        <props>
            <prop key="resource.loader">file</prop>
            <prop key="file.resource.loader.class">org.apache.velocity.runtime.resource.loader.FileResourceLoader</prop>
            <prop key="file.resource.loader.path">src/main/resources/templates/email/</prop>
            <prop key="file.resource.loader.cache">true</prop>
            <prop key="file.resource.loader.modificationCheckInterval">5</prop>
        </props>
    </property>
</bean>

Все работает нормально, когда я запускаю его из Intellij IDEA, но когда я собираю jar для запуска на сервере, возникает исключение: org.apache.velocity.exception.ResourceNotFoundException: невозможно найти ресурс «MyTemplate.vm». Есть идеи как это исправить? Буду благодарен за любую помощь

1 Ответ

0 голосов
/ 25 июня 2018

Итак, вы используете FileResourceLoader и задаете ему относительный путь "src / main / resources / templates / email /"

Таким образом, если этот путь относительно того, где выполняется ваше приложение, находится на сервере, он дает вам совершенно разумный код ошибки.

То, что вы хотите делать, используя ClasspathResourceLoader в вашей конфигурации bean-компонента и убедившись, что ваши шаблоны упакованы надлежащим образом в результирующий jar.

...