개요
java.io.FileNotFoundException: class path resource [path/data.json] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/C:/app/app.jar!/BOOT-INF/classes!/path/data.json
플젝 중에 또 만나버린 오류...
File Not Found, 이름을 읽어보니 파일을 찾지 못한다고 한다.
지금까지 플젝에서 필수적인 데이터를 resouces 디렉터리에 넣고 테스트해왔다.
하지만 본격적으로 배포를 하니 이 부분에서 문제가 생겼다.
File file = new ClassPathResource("파일경로").getFile();
위와 같은 코드는 로컬에서 아무런 문제가 없다.
로컬 환경에서는 파일의 경로가 분명 했으나 jar로 빌드하고 서버에서 실행했을 때는 실제 파일 경로가 찾을 수 없는 것이다.
해결
그럼 위치에 맞게 해당 데이터를 읽어오면 된다!
프로젝트를 빌드하면 빌드된 리소스는 CLASS_PATH에 위치하게 된다.
이 위치에서 원하는 파일을 쉽게 가져올 수 있도록 Spring에서는 ClassPathResource 클래스를 제공한다!
ClassPathResource resource = new ClassPathResource("파일명");
나는 이 클래스를 위와 같이 활용하여 문제를 해결했다.
728x90
반응형
'Projects > Resolve Problems' 카테고리의 다른 글
Uncaught Error: [🍍]: "getActivePinia()" was called but there was no active Pinia. (0) | 2024.07.05 |
---|---|
CommunicationsException: Communications link failure (0) | 2024.06.16 |
NonUniqueResultException (1) | 2024.03.26 |
504 Gateway time out (0) | 2024.03.14 |
javax.servlet.http.httpservlet, determined from the dynamic web module facet version (2.5), was not found on the java build path (0) | 2023.04.10 |