我使用 Velocity 已经有一段时间了,从来没有遇到过问题。但是,最近,我遇到了一个问题。
我正在使用速度生成 HTML 代码并将生成的 HTML 作为电子邮件发送。这个过程有 50% 的时间有效。当它失败时,我收到此错误:
Caused by: java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
at org.apache.commons.collections.ExtendedProperties.load(ExtendedProperties.java:542)
at org.apache.commons.collections.ExtendedProperties.load(ExtendedProperties.java:519)
at org.apache.velocity.runtime.RuntimeInstance.setDefaultProperties(RuntimeInstance.java:397)
at org.apache.velocity.runtime.RuntimeInstance.initializeProperties(RuntimeInstance.java:570)
at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250)
at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:590)
at org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:136)
at testapp.webapp.utility.velocity.VelocitySettings.<init>(VelocitySettings.java:48)
... 26 more
我的代码如下:
VelocityEngine ve = null;
try
{
Properties props = new Properties();
props.put("resource.loader", "file");
props.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");
props.put("file.resource.loader.path", Settings.getVelocityTemplatesPath());
props.put("file.resource.loader.cache", "true");
props.put("runtime.log.logsystem.class","org.apache.velocity.runtime.log.NullLogSystem");
ve = new VelocityEngine();
ve.init(props); //THE ERROR IS TAKING PLACE HERE
}
catch (Exception e)
{
throw new Exception ("Error while instantiating the velocity engine", e);
}
我仍然无法解释为什么它会随机发生。我对此进行了一些研究,但还没有找到任何线索。外面有人吗?