我正在尝试在谷歌应用引擎上使用速度框架。我用 main 方法编写了一个小程序,并尝试在本地运行它。我得到以下异常:
线程“主”org.apache.velocity.exception.VelocityException 中的异常:无法使用当前运行时配置初始化 org.apache.velocity.runtime.log.ServletLogChute 的实例。 在 org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:206) 在 org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255) 在 org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795) 在 org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250) 在 org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:107) 在 Main.main(Main.java:10) 原因:java.lang.UnsupportedOperationException:无法从应用程序属性中检索 ServletContext 在 org.apache.velocity.runtime.log.ServletLogChute.init(ServletLogChute.java:73) 在 org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:157) ... 5 更多
这是我的程序:
import java.io.StringWriter;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
public class Main {
public static void main(String[] args) throws Exception{
/* first, get and initialize an engine */
VelocityEngine ve = new VelocityEngine();
ve.init();
/* next, get the Template */
Template t = ve.getTemplate( "helloworld.vm" );
/* create a context and add data */
VelocityContext context = new VelocityContext();
context.put("name", "World");
/* now render the template into a StringWriter */
StringWriter writer = new StringWriter();
t.merge( context, writer );
/* show the World */
System.out.println( writer.toString() );
}
}
相同的程序在普通的 Eclipse 项目上运行得很好。可能是什么问题呢?