반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- cypressBDD
- react-ga
- file not found Error
- 시스템설계방법
- awss3
- 시스템설계면접예시
- 디자인패턴
- 리액트구글애널리틱스
- gitsquash
- 전략패턴
- 리팩터링2판테스트
- cypress React
- git commit merge
- git squash
- 가상면접3장
- s3이미지다운로드됨
- 시스템설계면접팁
- 가상면접2장
- 헤드퍼스트전략패턴
- react
- 테스트코드책
- formik react-query submitting not working
- git commit 협업
- 시스템설계
- 시스템설계면접
- formik submitting not working
- 리팩토링2판4장
- Git commit 합치기
- 가상면접으로대규모시스템
- FirebaseAnalytics
Archives
- Today
- Total
mingg IT
[Spring] Spring Boot Jar 배포 후 file not found Error 본문
apple 로그인 구현하던 와중에 key 관련된 파일을 다운받고, 파일 내용을 읽어오던 와중 문제를 직면했다.
우선 로컬에선 별 문제없이 찾아오지만, 배포하고 나면 Path.get(resource.getURI()) 에서 에러가 발생한다.
배포한 환경에 디버깅을 붇은 방법은 Remote JVM Debug 를 이용해서 붙어서 원인을 알 수 있었다.
String keyPath = "static/apple/애플키.p8";
ClassPathResource resource = new ClassPathResource(keyPath);
// 배포시 jar 파일을 찾지 못함
//String privateKey = new String(Files.readAllBytes(Paths.get(resource.getURI())));
resource.getURI() 를 입력해보면 jar ~~ 어쩌고 저쩌고 라고 분명히 경로가 있을 것이다.
개발환경에서는 classPath를 이용해서 접근이 가능했으나, jar 배포환경에서는 찾지못한다.
해결법은 다음과 같다.
ClassPathResource resource = new ClassPathResource(keyPath);
// 배포시 jar 파일을 찾지 못함
//String privateKey = new String(Files.readAllBytes(Paths.get(resource.getURI())));
InputStream in = resource.getInputStream();
String privateKey = IOUtils.toString(in, StandardCharsets.UTF_8);
Path.get() 과 Files.readAllBytes 대신 InputStream() 을 이용해서 파일을 읽어와주었다.
'BackEnd' 카테고리의 다른 글
[디자인 패턴] 헤드퍼스트 디자인 패턴 1장 리뷰 (0) | 2023.03.06 |
---|---|
[디자인 패턴] 헤드퍼스트 디자인 패턴 (0) | 2023.03.06 |
[Spring Security] 401 Cors (403) 뽀개기 (0) | 2022.12.28 |
[Spring] Swagger-UI 3.0.0 not working 해결하기 (0) | 2022.02.07 |
[MongoDB]MongooseServerSelectionError: connect ECONNREFUSED ::1:27017 에러 해결 (4) | 2022.02.05 |
Comments