我正在尝试使用GlashFish服务器和Velocity创建一个webApp。
但我收到以下错误:
SEVERE: ResourceManager : unable to find resource 'temp.vm' in any resource loader.
SEVERE: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'temp.vm'
velocity.proprieties:
resource.loader=webapp
webapp.resource.loader.class=org.apache.velocity.tools.view.WebappResourceLoader
webapp.resource.loader.path=/WEB-INF/templates/
的Servlet
ve.setApplicationAttribute("javax.servlet.ServletContext", context);
template = ve.getTemplate("temp.vm");
我正在使用NetBeans IDE,而我的temp.vm文件位于/ WEB-INF / templates /中。必须是我缺少的东西,但我无法得到它是什么。
感谢您的帮助!
答案 0 :(得分:3)
另一种选择可能是使用类路径资源加载器并将.vm文件放在/WEB-INF/classes
中。
答案 1 :(得分:2)
我刚问了一个类似的问题:
How to load a velocity template into an EJB to be used as a mail template
我使用了ClasspathResourceLoader并创建了一个包含模板的.jar。将.jar放入WEB-INF / lib文件夹中它应该可以工作(至少我可以管理以这种方式运行)。
希望有所帮助:)
此致 亚历
答案 2 :(得分:2)
将模板放在/WEB-INF/classes/template/temp.vm目录中并使用ve.getTemplate(“template / temp.vm”);
确保将资源加载程序配置为ClasspathResourceLoader。
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<props>
<prop key="resource.loader">class</prop>
<prop key="class.resource.loader.class">org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</prop>
</props>
</property>
</bean>