Spring/Spring Boot

[springboot, kotlin] 배포시 FileReader FileNotFoundException

100win10 2021. 9. 28. 01:17
FileReader("src/main/resources/templates/$fileName.yaml")
	.readText()

 

로컬에서는 파일 경로를 읽어와서 잘 읽지만 쿠버네티스 파드에 JAR 패키징으로 실행한 어플리케이션 안에서는 FileNotFoundException이 발견되었다.

 

실행할 때 jar 로 패키징해서 실행하였다면 InputStream을 써서 읽어야 한다. File로 읽을 수 있는건 자바 메인으로 실행했을 때 파일 경로로 읽을 수 있는것이고 JAR 안에 들이었는 리소스를 클래스패스로 접근해서 읽을 때는 파일시스템에 있는 파일이 아니라 JAR 안에 있는 파일이기 때문이다.

 

 javaClass.getResourceAsStream("/data/$fileName")
            ?.bufferedReader()
            ?.readText()

 

다음과 같이 변경후 읽어오는 것을 확인하였다.