mingg IT

[Spring] Spring Boot Jar 배포 후 file not found Error 본문

BackEnd

[Spring] Spring Boot Jar 배포 후 file not found Error

mingg123 2023. 2. 4. 18:42

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() 을 이용해서 파일을 읽어와주었다. 

Comments