8

我正在使用速度引擎模板在 struts1 和休眠配置中发送邮件。

我收到错误:org.apache.velocity.exception.ResourceNotFoundException当我尝试发送邮件时。

我已经包含了velocity1.5.jar、mail.jar、activation.jar、smtp.jar。

我在这里包括速度模板路径

String velocityTemplate = "mailTemplate/sendMail.vm";

并且 mailTemplate 文件夹在WEB-INF/classes文件夹中

当代码执行此行时出现该错误

Template template = velocityEngine.getTemplate(velocityTemplate);

有人可以帮我解决这个问题吗?

如果有人帮助我,那将更加明显。

4

3 回答 3

9

正如 BenM 所说,我们必须将资源加载器配置为 ClasspathResourceLoader

velocityEngine.setProperty("resource.loader", "class");
velocityEngine.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"));

velocityEngine.init();

我刚刚添加了以下 jar 的最新版本。现在它工作正常。

--> commons-collections-3.2.1.jar

--> commons-lang-2.4.jar

再次感谢 BenM

于 2009-09-09T05:39:44.190 回答
1

确保您在 VelocityEngine 上调用了 init()。

检查您是否已将资源加载器配置为 ClasspathResourceLoader。有关更多信息,请参阅Velocity 文档

对于旧版 Velocity 类,您需要执行以下操作:

Velocity.setProperty("resource.loader", "class");
Velocity.init();
于 2009-08-23T07:15:38.307 回答
0

一直在为同样的问题苦苦挣扎,终于解决了。

  • 模板文件需要在类路径中。
  • velocity.properties 文件与您在 init() 之前所做的设置不冲突。
  • 并且您的项目周围没有多个不同版本的罐子。
于 2010-06-22T16:13:59.897 回答