Cześć
Mam aplikację springową. Problem jest taki , że po zmianie w pliku dev-property.properties, w którym przechowywane są ustawienia do baz itp. to przy starcie aplikacji dostaję :
nested exception is java.io.FileNotFoundException: class path resource [develop/dev-property.properties] cannot be opened because it does not exist
1942.155 ERROR --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [pl.property.web.config.AppConfig]; nested exception is java.io.FileNotFoundException: class path resource [develop/dev-property.properties] cannot be opened because it does not exist
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:182)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:321)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:243)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:98)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:760)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:360)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)
at pl.property.web.Application.main(Application.java:26)
Caused by: java.io.FileNotFoundException: class path resource [develop/dev-property.properties] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:153)
at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:98)
at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:72)
at org.springframework.core.io.support.PropertiesLoaderUtils.loadProperties(PropertiesLoaderUtils.java:58)
at org.springframework.core.io.support.ResourcePropertySource.<init>(ResourcePropertySource.java:84)
at org.springframework.context.annotation.ConfigurationClassParser.processPropertySource(ConfigurationClassParser.java:367)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:255)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:232)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:191)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:272)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:232)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:168)
... 13 common frames omitted
1942.155 INFO --- [ main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/charsets.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/deploy.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/access-bridge-64.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/cldrdata.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/dnsns.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/jaccess.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/jfxrt.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/localedata.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/nashorn.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/sunec.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/sunjce_provider.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/sunmscapi.jar, file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/ext/sunpkcs11.jar
................
Dopiero w momencie, gdy zrobię mvn clean install to zadziała, chociaż też nie zawsze. Czasem dopiero za drugim razem działa.
Klasa AppConfig
@Configuration
@ComponentScan("pl.property.web")
@Import({ServicesConfig.class, DatabaseConfig.class,
WebMvcAutoConfiguration.class,
HttpMessageConvertersAutoConfiguration.class,
FallbackWebSecurityAutoConfiguration.class,
SecurityFilterAutoConfiguration.class
})
@EnableScheduling
@EnablePolonEnvironment
@EnablePolonProfiling
@PropertySources({ @PropertySource("classpath:property.properties")})
public class AppConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper(null, new PropertySerializerProvider(), null);
objectMapper.setDateFormat(new SimpleDateFormat("dd-MM-yyyy"));
objectMapper.registerModule(new PropertyModule());
return objectMapper;
}
@Bean
public TypeConverter typeConverter() {
return new TypeConverter();
}
@Bean
public WidgetDataSerializer dataSerializer(ObjectMapper objectMapper) {
return new JacksonWidgetDataSerializer(objectMapper);
}
@Bean
public BundleMutex bundleMutex() {
return new BundleMutex(4000);
}
}
I konfiguracja profilu develop
@Configuration
@Import({ EmbeddedServletContainerAutoConfiguration.class, ServerPropertiesAutoConfiguration.class })
public class DeveloperConfig {
@Configuration
@Profile("develop")
public static class DevConfig {
@Bean
public EmbeddedServletContainerCustomizer welcomePageSetter() {
return container -> ((TomcatEmbeddedServletContainerFactory) container)
.addContextCustomizers(context -> context.addWelcomeFile("index.html"));
}
@Configuration
@Profile("develop")
@PropertySource("classpath:develop/dev-property.properties")
static class DevProperties {
}
}
}
Ktoś ma jakieś pomysły czym to może być spowodowane? Inne osoby w zespole nie mają z tym problemu