Java

[스프링프레임워크] Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [property//jdbc.properties] cannot be opened because it does not exist 오류 해결방법

git에서 코드를 내려받은 후 아파치 톰켓 서버를 설정하고 서버를 시작하였다.

서버 로그를 확인결과 정상적으로 기동되었다.

다음 작업으로 로그인페이지로 이동 후 로그인을 시도하였으나 HTTP Status 404 – /j_spring_security_check 오류가 발생하였다. 


오류내용을 확인하기 위해 이클립스 콘솔창에서 로그를 확인하였더니 접근조차 하지 않았다.

그래서 다음 작업으로 톰켓서버에서 마우스 우클릭 후 Clean.. 작업을 하였다.


 

그런다음 아파치 톰켓 서버를 재시작하였더니 jdbc.properties 설정 파일을 찾지 못하는 오류가 발생하였다

org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [property//jdbc.properties] cannot be opened because it does not exist
	at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:87)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:703)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.FileNotFoundException: class path resource [property//jdbc.properties] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:171)
	at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:152)
	at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:98)
	at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:175)
	at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:156)
	at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:78)
	... 15 more

1월 25, 2022 12:02:52 오후 org.apache.catalina.core.StandardContext startInternal
심각: One or more listeners failed to start. Full details will be found in the appropriate container log file
1월 25, 2022 12:02:52 오후 org.apache.catalina.core.StandardContext startInternal
심각: Context [/ubsales_cobalt] startup failed due to previous errors
1월 25, 2022 12:02:52 오후 org.apache.catalina.core.ApplicationContext log
정보: Closing Spring root WebApplicationContext
1월 25, 2022 12:02:52 오후 org.apache.coyote.AbstractProtocol start
정보: Starting ProtocolHandler ["http-bio-3000"]
1월 25, 2022 12:02:52 오후 org.apache.coyote.AbstractProtocol start
정보: Starting ProtocolHandler ["ajp-bio-8009"]
1월 25, 2022 12:02:52 오후 org.apache.catalina.startup.Catalina start
정보: Server startup in 10046 ms

 

설정관련 파일들은 개발환경과 로컬환경 그리고 운영환경으로 각각 분리되어 구성되어 있다.


서버 설정 탭에서 아파치 톰켓 서버를 더블 클릭하자.


 

 

아래와 같이 아파치 톰켓 설정관련 정보들을 확인할 수 있다.


 

Open launch configuration 를 클릭하여 설정 팝업창을 호출한다.


확인결과 아파치 톰켓 시작시 구성정보 설정하는 부분에 누락된 설정이 있었다.

Arguments 탭을 클릭 후 VM arguments: 탭에서 다음 한 줄을 추가하였다. 

활설화시킬 설정구성을 local로 설정하였다.

-Dspring.profiles.active=local

 

서버를 다시 재시작 결과 정상적으로 기동되었다.

Module 탭을 클릭하여 Path 설정을 변경 후 정상적으로 로그인 되었다.


너무나 오래된 작업을 다시 시작하니 신입사원이 된 기분이다. ㅋㅋㅋ

자주 하지 않는 것들은 확실히 기억에 오래가지 않는다.

기록만이 살길이다.

Leave a Reply

error: Content is protected !!