IDE 에서 잘 읽히던 파일이 배포하면 아래와 같은 에러가 났다.
Caused by: java.io.FileNotFoundException: class path resource [example.file] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/Users/122d6417/IdeaProjects/member-auth-service/app/app-client-api/build/libs/app-client-api-1.2.4.jar!/BOOT-INF/lib/domain.jar!/example.txt
에러가 발생하는 곳은 이곳이다.
val file = ClassPathResource("example.txt").file
file:/Users/122d6417/IdeaProjects/member-auth-service/domain/build/resources/main/example.file
jar:file:/Users/122d6417/IdeaProjects/member-auth-service/app/app-client-api/build/libs/app-client-api-1.2.4.jar!/BOOT-INF/lib/domain.jar!/example.txt
jar 파일 내부로 들어갈 때 파일 경로에 !가 포함되게 된다.
file 로 시작하지 않으면, FileNotFoundException
에러가 발생하는군 🤔
val file = ClassPathResource("example.txt").inputStream
URL 이 getResourceAsStream()
은 다형적으로 동작하도록 구현되어 있어서 두 상황 모두에서 잘 동작할 수 있다.