当我尝试使用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();
}
}
以上代码可以访问该网址。
答案 0 :(得分:2)
终于找到了问题。
问题在于未指定“url.resource.loader.root”。