当前位置: 首页 > 面试题库 >

速度找不到资源

孔俊友
2023-03-14
问题内容

出了点问题,这非常令人沮丧。我在Velocity的主页上读到,当我运行webapp时,应设置一些属性。我已经做到了,但是无论我做什么,我都会遇到相同的错误。
这是我设置道具并使用速度的地方

public class ConfirmationMailGenerator implements MailGenerator {

    private BasicUser user;
    private String htmlTemplate = "HTMLConfirmationMailTemplate.vsl";
    private String plainTemplate = "PlainConfirmationMailTemplate.vsl";

    public ConfirmationMailGenerator(BasicUser user) {
        this.user = user;
    }

    public StringWriter generateHTML() throws Exception {
        Properties props = new Properties();
        props.setProperty("resource.loader", "wepapp");
        props.setProperty("webapp.resource.loader.class", "org.apache.velocity.tools.view.WebappResourceLoader");
        props.setProperty("webapp.resource.loader.path", "/WEB-INF/mailtemplates/");
        VelocityEngine engine = new VelocityEngine(props);
        VelocityContext context = new VelocityContext();

        engine.init();

        Map map = createDataModel();
        context.put("user", map);

        Template template = engine.getTemplate(htmlTemplate);
        StringWriter writer = new StringWriter();
        template.merge(context, writer);

        return writer;
    }
...
}

这些文件当然保存在/ WEB-INF / mailtemplates /中。
如果我用这个我得到这个错误:

SEVERE: ResourceManager : unable to find resource 'HTMLConfirmationMailTemplate.vsl' in any resource loader.
SEVERE: The log message is null.

感谢您的时间:)


问题答案:

您正在使用Webapp资源加载器,该资源加载器适用于Velocity Tools
servlet服务的页面。(它需要一些特殊的初始化才能找到servlet上下文的根)。

我建议您使用ClasspathResourceLoader,然后将文件放入WEB-INF /
classs或classpath中的其他位置。这确实是最直接的方法。

resource.loader = class
class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader

更多信息在这里:

https://velocity.apache.org/engine/1.7/apidocs/org/apache/velocity/runtime/resource/loader/ClasspathResourceLoader.html



 类似资料:
  • 我正在做一个项目,编译并运行我的IDE工作正常。所有资源都找到了,它正常工作。然而,当我构建我的. jar时,它能够找到一些资源,但不是全部。我的项目结构看起来是这样的: 当我运行jar文件时,它能够找到图像并使用它们,但是当我尝试访问html文件时,它不会打开。下面是jar的项目结构; 我以前从未处理过jar文件,所以这似乎是我犯的一个非常明显的错误。感谢您的帮助,谢谢! 编辑:访问找不到的文件

  • 我正在使用ADT 我的styles.xml:

  • 问题内容: 我在使用findViewById(id)时遇到了一个奇怪的问题。即使资源肯定存在,它也会返回未找到的资源。它是布局中的一个Textview,与另一个textview相邻,我可以通过id找到其中一个textview,但另一个显示未找到资源。有什么可能会发生这种情况吗? 问题答案: 尝试清理您的项目或发布一些代码。 如果您正在使用Eclipse,则有时无法正确地重新生成ID。这需要清理项目

  • 我从github导入了一个工作项目,由于styles.xml和build.grable存在问题,我发现自己无法运行/rebuild project。 以下是我访问过的关于这个问题的链接: Theme.appcompat.light.DarkActionBar-找不到资源 Android错误:找不到资源-theme.appcompat.light.DarkActionBar和Android虚拟设备

  • 这个问题非常相似(如果不是相同的话): “找不到基本名称消息的捆绑包”错误 为MessageSource找不到ResourceBundle[消息]:无法为基名消息找到bundle 基本上,我有以下代码: 当我试着跑的时候 我试图更改文件名,在代码中更改文件名,添加资源文件夹(但我认为它已经被正确地包括在内),并放置消息。属性文件位于所有可能的文件夹中。奇怪的是,eclipse本身显示了这个错误,它

  • 我正在用PHP开发一个jasper报表,我尝试了嵌入式jasper Library0.9d--phpJasperLibrary-master在修复了库中的部分代码后,工作正常,但不能显示对我开发jasper报表非常重要的表格格式,所以我放弃了这种方法,建立了一个jasper服务器。 我已经通过composer并使用以下链接中的示例代码安装了PHP客户端(V2.0) http://community