我正在使用Velocity 1.7和Tomcat 8.我有这段代码:
java.util.Properties props = new java.util.Properties();
props.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM_CLASS,NullLogChute.class.getName());
try {
Velocity.init(props);
} catch (Exception e) {
e.printStackTrace();
}
当我在没有安全管理器的情况下启动tomcat时它工作正常,但是当我使用安全管理器启动Tomcat时,我发现了这个异常:
显示java.lang.NullPointerException 在java.io.Reader。(Reader.java:78) 在java.io.InputStreamReader。(InputStreamReader.java:97) 在org.apache.commons.collections.ExtendedProperties.load(ExtendedProperties.java:542) 在org.apache.commons.collections.ExtendedProperties.load(ExtendedProperties.java:518) 在org.apache.velocity.runtime.RuntimeInstance.setDefaultProperties(RuntimeInstance.java:416) 在org.apache.velocity.runtime.RuntimeInstance.initializeProperties(RuntimeInstance.java:628) 在org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:261) 在org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:646) 在org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:226) 在org.apache.velocity.app.Velocity.init(Velocity.java:97)
如何在catalina.policy中添加权限以使速度有效?
非常感谢!
答案 0 :(得分:0)
Velocity正在尝试从以下类路径文件中加载其默认属性文件:org/apache/velocity/runtime/defaults/velocity.properties
。
因此,您必须授予您的webapp(或更具体的Velocity jar)读取java.io.FilePermission权限:
your-velocity-engine.jar!org/apache/velocity/runtime/defaults/velocity.properties
您还需要获得相同的许可:
your-velocity-engine.jar!org/apache/velocity/runtime/defaults/directive.properties