今天想把之前的短信发送程序改进一下,想利用Spring+MyBatista框架重构一下,并且将它加到电脑的计划任务中让电脑每天自动执行。在这个过程中碰到了一些问题,总结如下:
- 在导出可执行的jar包中找不到application.xml文件。
- 将.bat文件加入到电脑的计划任务中并不能执行文件。
问题一:
MAVEN项目,在IDEA中运行正常,但是把它打成jar包后再运行就会出现异常:
Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]
在IDEA中,MAVEN项目是会自动扫描 src/main/resources 路径下的资源配置文件的,所以无需额外配置。
自动扫描的原因是:resource 下的文件编译之后存放的位置,直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径。
但是打成Jar包以后,它是不会自动扫描 src/main/resources 路径下的配置文件了,所以应当在这里手动配置,让它能扫描到xml配置文件。
只需要在pom.xml中添加以下代码:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
问题二:
首先在写.bat文件时最后应该加一句 exit 否则在任务列表中执行完后,这个任务的状态一直是正在执行。
其次在将.bat文件加入计划任务中是注意一下部分不能少,不然不能执行。