java - 尽管文件位于类路径中,但无法找到资源

标签 java spring apache-velocity

我已将 Apache Velocity 1.7 添加到我的 spring 3.2.5.RELEASE 应用程序中,以便将 html 转换为字符串并发送邮件。我的 spring 上下文定义如下:

<bean id="velocityEngine1" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
    <property name="velocityProperties">
        <props>
            <prop key="resource.loader">class</prop>
            <prop key="class.resource.loader.class">
                org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
            </prop>
        </props>
    </property>
</bean>

我已将文件 test.vm 添加到我的 src/main/resources 文件夹中。

下面一行是我使用引擎的地方:

   @Autowired
    @Qualifier("velocityEngine1")
    private VelocityEngine velocityEngine;

public JSONResult uploadFile(MultipartFile file, AppUserDTO appUserDTO){

        String body = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "test", "UTF-8", null);
        System.out.println(body);

...

}

当它执行方法VelocityEngineUtils.mergeTemplateIntoString时,我得到异常:

org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'test'

最佳答案

您需要输入 full path with template file ,就你的情况而言

 VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "test.vm", "UTF-8", null);

关于java - 尽管文件位于类路径中,但无法找到资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58078842/

相关文章:

java - 编译java时找不到包

java - 如何在java中获取偏移值时在空格和特殊字符上分割字符串

java - 如何在 Spring 应用程序上下文中注入(inject) Jakarta 枚举?

java - Spring war 在本地工作但不在服务器 tomcat 中工作(请求的 bean 当前正在创建 : Is there an unresolvable circular reference? )

amazon-web-services - 解析程序中的AppSync GraphQL变异服务器逻辑

amazon-web-services - API 网关映射模板可选字段

java - 生成 Javaassist 运行时 POJO 时出现异常

java - 管理多个版本的 JDK : invalid source release error

java - Spring boot+Spring Security 单向 SSL 和双向 SSL 应用端点

jquery - 将 Apache Velocity(与 SparkJava)与加载的模板一起使用