Apache速度无法找到资源

时间:2012-09-25 11:53:13

标签: java apache plugins velocity rcp

我正在尝试使用velocity加载模板。我唯一拥有的是文件的路径。但我似乎无法用这个绝对路径加载文件。你怎么需要这样做?

关于阅读绝对模板的文档非常模糊....

我正在尝试在RCP程序的插件中使用它

2 个答案:

答案 0 :(得分:1)

将您的模板放在插件项目“templates / template1.vt”文件夹中,并确保在build.properties中添加此文件夹。您可以尝试通过以下方式获取模板文件。

one:
 URL url= Activator.getDefault().getBundle().getEntry("templates/template1.vt");
 url = FileLocator.toFileURL(url);
 File file = new File(url.toURI());

second:
url = new URL("platform:/plugin/<plugin id>/templates/template1.vt");
url = FileLocator.toFileURL(url);
File file = new File(url.toURI());

答案 1 :(得分:1)

我认为您最好的选择是查看Velocity中的Resource Loader概念。这是Velocity提供从任意来源加载模板的方式。有关详细信息,请参阅文档here

您可以查看可用的参考资料,以获取参考资料。有一个FileResourceLoader,如果配置正确,可能正是您需要的。

如果这不起作用,您可以从基础ResourceLoader类派生。然后,您的ResourceLoader将简单地从您传递给getTemplate()的名称映射 - 调用实际文件。