Apache Velocity:简单示例中的ReourceNotFoundException

时间:2016-02-15 06:54:58

标签: java velocity

我正在尝试在我的项目中使用velocity。我指的是来自here的代码。除了创建带有消息的html页面之外,我的代码没有做太多。

public static void main(String[] args) {

        VelocityEngine ve = new VelocityEngine();
        ve.init();

        Template t = ve.getTemplate("seat.html");

        VelocityContext vc = new VelocityContext();
        vc.put("message", "Hello Velocity");

        StringWriter sw = new StringWriter();
        t.merge(vc, sw);

        System.out.println(sw);
}

我的模板文件seat.html与包含此方法的类位于同一文件夹中,也位于项目的src文件夹中。这不起作用,所以我尝试使用绝对路径名来引用。但这也不起作用。我还尝试使用FilePathLoaderProperties配置速度,但我想这个简单的示例应该如tutorial(上面提到的)所示。

文件夹结构:

velocity-test
    `-- src
        |-- bean
        |-- core
        |   |-- Application.java
        |   `-- seat.html
        `-- seat.html

Excception:

SEVERE: ResourceManager : unable to find resource 'seat.html' in any resource loader.
Exception in thread "main" org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'seat.html'
    at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474)
    at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)
    at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)
    at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514)
    at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373)
    at core.Application.main(Application.java:16)

关于SO的问题还有很多问题,但所有这些问题都使用了一些属性来配置速度引擎;这是我不想要的。

提前致谢!

1 个答案:

答案 0 :(得分:2)

只需更改为

ve.getTemplate("./src/seat.html");