我有两个Spring项目,Backend和Frontend。后端的升级没有问题(Spring 4.1.2.RELEASE)。在部署前端时我有这个例外:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [acn.spring.config.AppConfig]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/jdbc.properties]
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:489)
....
Caused by:
java.io.FileNotFoundException: Could not open ServletContext resource [/jdbc.properties]
这是前端的WebAppInitializer:
@Configuration
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { AppConfig.class };
}
.....
Appconfig位于后端项目中,如下所示:
@Import(DataConfig.class)
@Configuration
public class AppConfig {
...
}
缺少的属性文件用于DataConfig,在此处导入:
@PropertySource("jdbc.properties")
@Configuration
public class DataConfig {
...
}
为什么无法找到属性文件?
编辑:后端的Jar结构:
前端的战争结构:
答案 0 :(得分:9)
告诉配置类您的属性在类路径中。否则,它将默认查看Servlet上下文,因为它是一个Web上下文。
@PropertySource("classpath:jdbc.properties")
答案 1 :(得分:0)
检查jdbc.properties
是否在类路径的根目录中。如果这不是问题,我需要更多关于您的问题的详细信息,例如您的文件夹结构以及编译打包到战争。