我在Spring Boot 5中使用Velocity 2.0来发送电子邮件。我从src / main / resources / email /加载模板,并在config.xml文件中将VelocityEngine定义为bean
<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”。知道如何解决吗?我将不胜感激
答案 0 :(得分:0)
因此,您正在使用FileResourceLoader并为其指定相对路径“ src / main / resources / templates / email /”
因此,除非相对于您的应用程序运行位置的路径在服务器上,否则它会为您提供完全合理的错误代码。
要在bean配置上使用ClasspathResourceLoader,并确保模板正确包装在生成的jar中,您想做什么。