2017-11-10 1 views
0

에 배포 한 후 나는 내 응용 프로그램의 루트 폴더에있는 JSON 파일을로드 할 문제가있는 directory.So 나는 간단한자바 : 나는 응용 프로그램을 실행할 때 FileNotFound 서버

 File file = new File("assetlinks.json"); 

했다 내 로컬 서버에서 파일이 올바르게 제공됩니다 하지만 내가 그것을 온라인으로 누르면 파일을 찾을 수 없습니다 그것은 FileNotFoundException을 throw합니다.

여기에 무엇이 누락 되었습니까? 이 웹 응용 프로그램의 루트 인 경우

+0

적절한 파일 경로를 지정하십시오. –

+0

파일이 내 응용 프로그램의 루트 폴더에 있으므로 완전한 파일 경로가 필요하지 않다고 가정합니다. 그리고 그것은 지역에서 작동합니다. – Ogbe

+0

절대 경로를 제공합니다. –

답변

1

를 현재 작업 디렉토리를 로그인 한 후, 나는 그것이 응용 프로그램이 컨테이너에 번들로 제공되며 자원을 얻을 수 있기 때문입니다, 빈 문자열을 반환 발견 이러한 자원은 명시 적으로 단순히 자원을 추가 할 수 있도록 문제

ADD assetlinks.json assetlinks.json 

내가

File file = new File("assetlinks.json"); 
을 사용하여 파일을 얻을 수 있었다있었습니다을 해결 고정 표시기하려면 고정 표시기 파일에 추가 할 필요가
1

, 당신이 필요합니다

File file = new File(servletRequest 
     .getServletContext().getRealPath("/assetlinks.json")); 

이 파일 시스템 파일에 웹 응용 프로그램의 루트 경로 (/) 상대와 같은 URL을집니다.

가 (BTW 하위 디렉토리가 더 좋은 생각이 될 수 있습니다.)

+0

고맙습니다 만, 서블릿을 사용하지 않고 API 리소스에서 파일을 반환합니다. – Ogbe

+0

'System.getProperty ("user.dir")'을 알거나'file.getAbsolutePath()'를 로그 아웃 할 수 있습니다. . 권리가 누락 된 것 같습니다. –

+0

다시 한 번 고마워요. System.getProperty ("user.dir")를 사용하여 현재 작업 디렉토리를 얻으려고했지만 시스템의 올바른 디렉토리와 서버의 빈 문자열을 반환했습니다. 서버가 Kubernetes 컨테이너에 포장되어 있기 때문일 수 있습니까? – Ogbe

관련 문제