当URLResourceLoader与Velocity一起使用时,无法加载模板

时间:2010-09-07 11:08:11

标签: java apache velocity template-engine

当我尝试使用URLResourceLoader访问Velocity模板时出现以下错误。

org.apache.velocity.exception.ResourceNotFoundException:无法找到资源“http://localhost:8080/myvelocityapp/my-template.vm”           在org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:483)

如果我将URL粘贴到浏览器中,我可以看到上面的文件。但是,代码无法访问该URL。我的模板代码似乎是正确的,因为它在我尝试使用ClassPathResourceLoader时工作正常。它只是提供问题的url资源加载器。

感谢。

EDIT ---

我写了一个小的jUnit来看看问题是什么:

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import junit.framework.TestCase;

public class TestUrl extends TestCase {

    protected void setUp() throws Exception {
        super.setUp();
    }

    public void testVelocity() throws IOException {
        URL url= new URL("http://localhost:8080/myvelocityapp/my-template.vm");
        System.out.println(url.openStream().toString());

    }

    protected void tearDown() throws Exception {
        super.tearDown();
    }

}

以上代码可以访问该网址。

1 个答案:

答案 0 :(得分:2)

终于找到了问题。

问题在于未指定“url.resource.loader.root”。