我试图从jar文件外部导入spring config.xml。有一个注释配置类,可以导入到配置
@Configuration
@ImportResource("file:config.xml")
public class SpringConfig {
...
}
来自spring的日志消息表明它找不到config.xml。但是他们没有说它在搜索这个config.xml的路径是什么。
Caused by: java.io.FileNotFoundException: config.xml (The system cannot find the file specified)
在开发环境中
src\main\java\
|__com.packagewithclasses
|__config.xml
|__log4j.xml
在实时环境中
folder_holding_jars_and_configs
|__executable_jar_file.jar
|__config.xml
|__log4j.xml
我已经尝试了文档,谷歌,一些通配符,日志等。没有运气。什么是在jar文件外配置相对路径的spring的起始路径?
答案 0 :(得分:1)
如果文件在jar之外,你必须给出文件的绝对路径。
e.g。
@Configuration
@ImportResource("file:/opt/proj/config.xml")
public class SpringConfig {
...
}
修改:
除此之外,您可以将{XML}文件的相对路径放在MANIFEST.MF
文件中。由于您的jar和XML位于同一目录中,因此您可以在MANIFEST.MF
Class-Path: .
MANIFEST.MF
在文件末尾需要一个空行。
现在您可以使用如下的xml文件。
@Configuration
@ImportResource("file:/config.xml")
public class SpringConfig {
...
}
MENIFEST.MF
的位置将是`src / main / resources / META-INF / MANIFEST.MF'对于maven项目。