使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误,

Caused by: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'templates/index.vm'

at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474)

at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)

at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)

at org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:343)

at org.springframework.ui.velocity.VelocityEngineUtils.mergeTemplate(VelocityEngineUtils.java:71)

at org.springframework.ui.velocity.VelocityEngineUtils.mergeTemplateIntoString(VelocityEngineUtils.java:112)

at com.cooka.user.util.MailSender.sendVelocityEMail(MailSender.java:65)

at com.cooka.user.service.impl.UserServiceImpl.sendUserResetPasswordEmail(UserServiceImpl.java:135)

at com.cooka.web.user.controller.ResetPasswordHandler.doForget(ResetPasswordHandler.java:63)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

提示找不到vm模板文件。我用的是eclipse,使用tomcat和jetty在本地测试都木有问题,但打成jar后就是找不到jar包,后面和同伴讨论了下,才知道因为是maven打包,一些资源文件要放在src/main/resources文件夹下面,直接放在src/main/java目录下,程序运行后市找不到资源路径的。

参见7天学会Maven(第二天——Maven 标准目录结构),再了解到src/main/resources,负责管理项目主体的资源。在使用Maven2执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中。因此,后面我就紧紧把整个目录templates/index.vm 移到src/main/resources下即可,代码无需改变。出现这样的问题,是自己对maven不够熟悉吧,由此做个记录。

maven把项目打包成jar包后找不到velocity模板的bug的更多相关文章

  1. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

  2. maven将自己的springboot项目打包成jar包后,作为工具包引入其他项目,找不到jar中的类

    将springboot项目打包成jar包,作为工具包导入项目后,找不到jar中的类. 原因是:springboot项目使用了自动的打包插件. 原先的插件配置: <build> <pl ...

  3. springboot项目打包成jar包在Linux服务器默认80端口运行

    springboot项目端口设置 在application.properties文件 server.port=80 在application.yml文件 server: port: 80 然后在ide ...

  4. idea打包SpringBoot项目打包成jar包和war

    - 打包成jar包 1. <groupId>com.squpt.springboot</groupId> <artifactId>springbootdemo< ...

  5. 把java项目打包成jar包并可以直接运行【我】

    首先创建一个maven的jar项目,然后代码写好后,在项目右键,导出: 选择java下面的可运行的jar文件: 下一步: 要注意的是: launch configuration 此选项是指定选中要导出 ...

  6. IDEA 快速将spring boot项目打包成jar包,简单快速有效

    原文地址;https://blog.csdn.net/chen846262292/article/details/80701101  https://www.cnblogs.com/chrischen ...

  7. idea 将java 项目 打包成jar包

    记录一下,防止忘记.ps : 请忽略这个是web项目 1.idea 打包jar包 (1)首先打开Project Structure,选中Artifacts (2)点击绿色加号,选中jar ,然后选中f ...

  8. 在IDEA中将SpringBoot项目打包成jar包的方法

    SpringBoot项目无需依赖tomcat容器(内含)就可以发布,现在将打包步骤记录一下: 1. 打包前确认项目可以正常运行,打开Project Structure 快捷键 Ctrl+Shift+A ...

  9. 将java项目打包成jar包,之后在制作成可执行的exe文件

    1.利用eclipse选择 2.利用ex4j,详情见百度教程http://jingyan.baidu.com/article/00a07f38aad55182d128dc4c.html

随机推荐

  1. node的安装和配置

    一 . 直接安装node 1. http://nodejs.cn/download/ 根据自己的电脑选择适合的安装包 2.安装 , 无脑下一步 , 可以选择安装路径 , 但是一定要记住 . 3.命令行 ...

  2. ueditor 富文本编辑器 Uncaught TypeError: Cannot set property 'innerHTML' of undefined问题

    ueditor.addListener("ready", function () { ueditor.setContent(‘内容'); });

  3. react-router 4.0版本使用笔记

    react-router 4变化还是挺大的,看网上很多人遇到问题,都是基本用法的改变,所以这里记录一下. http://www.jianshu.com/p/d6727e8d81c4 1.react-r ...

  4. 帝国CMS如何禁止内容关键字替换ALT和title中的关键词为链接

    很多帝国cms用户喜欢使用关键字替换来实现文章自动内链的方法. 为什么要用关键词替换功能呢?这关系到站内优化,下面直接进入正题. 解决办法:打开e/class/functions.php 查找 '/' ...

  5. R语言进行词云统计分析

    R语言进行词云统计分析 本文章从爬虫.词频统计.可视化三个方面讲述了R语言的具体应用,欢迎大家共同谈论学习 1.使用 rvest 进行数据的爬取 #如果没有,先安装rvest包 install.pac ...

  6. 使用GlobalKey启动APP

    按键输入有三种:system key  音量键 global key 按下启动某个APP user key  ABCD... 给安卓应用程序定义一个广播接收者,写一个BroadcastReceiver ...

  7. C语言小程序-基于链表的学生信息管理

    程序支持增加.查询.删除.存盘和读取操作 一 程序定义和函数声明 头文件studentsys.h定义如下 /* student management system by list */ #ifndef ...

  8. Git安装配置(Linux)

    使用yum安装Git yum install git -y 编译安装 # 安装依赖关系 yum install curl-devel expat-devel gettext-devel openssl ...

  9. Emgucv安装及使用

    Emgucv安装 最近有个客户联系我,希望我能够为他们做一个识别瓷砖花纹的软件.应用场景是这样的:现场会有一个摄像头去拍摄流水线上运输的瓷砖,如果检测这块瓷砖的花纹不符合要求,则需要给PLC或输出板卡 ...

  10. 15-oauth2+oidc实现Server部分

    1-我们使用之前项目的mvcCookieAuthSampe2进行改造 1.1  增加IdentityServer4 2-增加Config.cs文件,对IdentityServer提供相关的配置数据 u ...