hoony's web study

728x90
반응형

소스의 resources 경로 내에 파일을 보관하여, 제어할때 SpringBoot에서 많은분들이

 

ClassPathResource 클래스를 이용하시는 것으로 알고 있습니다.

 

이때 주의할점이 하나 있는데요, 그건 바로 jar나 war로 패키징하여 배포할경우 입니다.

 

패키징하여 배포시, 아래의 코드는 NullPointerException 혹은 IOException 을 발생시키게 됩니다.

 

ClassPathResource resource = new ClassPathResource("/keyfile/cert.pem");

resource.getFile();

 

바로 resource.getFile() 이 부분에서 Exception이 발생하게 되는데요.

 

그 이유는 패키징하여 배포할경우 resource내에 있는 파일에 직접적인 접근이 안되기 때문입니다.

 

그 경우 해결방법은 바로 InputStream으로 풀어나가는 것입니다.

 

String fileByteArr = new String(FileCopyUtils.copyToByteArray(resource.getInputStream()));

 

위와 같은 방법으로 리소스를 제어하시면, Exception을 피하고 안전한 코딩을 하실 수 있습니다.

 

감사합니다.

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading