当我调用Velocity.init()时,我得到以下异常。我已经包含了所有依赖项,我尝试过设置属性和使用属性文件,但都无济于事。有什么帮助吗?
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:97)
at org.apache.commons.collections.ExtendedProperties.load(ExtendedProperties.java:543)
at org.apache.commons.collections.ExtendedProperties.load(ExtendedProperties.java:519)
at org.apache.velocity.runtime.RuntimeInstance.setDefaultProperties(RuntimeInstance.java:416)
at org.apache.velocity.runtime.RuntimeInstance.initializeProperties(RuntimeInstance.java:628)
at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:261)
at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:112)
at org.apache.velocity.app.Velocity.init(Velocity.java:74)
这是调用代码
import com.syntatik.roborm.RobormEntity;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.Properties;
public class Generator{
protected VelocityContext context;
public Generator(){
Velocity.init();
this.context = new VelocityContext();
}
}
答案 0 :(得分:2)
我查看了Velocity源代码,可以看到它在类路径中找到默认属性文件,然后在Reader.java中遇到问题。使用IDE,您应该能够获取Reader.java的源代码,以了解它为何获得NPE。不幸的是,目前我无法查看Reader
以获取更多信息。
如果您无法确定NPE的原因,我建议您从类路径中删除默认属性文件,并在代码中设置属性。
查看at this question了解更多信息