GIS

[GIS] 지오서버(Geoserver)에서 레이어 발행시 생기는 에러에 대한 이야기.. ( Failed to locate the input fi

모찌바라기 2022. 7. 21. 12:47
728x90
반응형

 

 

 

 

이번에 파일을 첨부하여 업로드하면 지오서버와 연동하여, 레이어를 발행하는 기능을 수정하고 있는데,
개발서버에서는 제대로 작동하는 것을 확인하고, 운영서버에 적용하였더니, 안되더라.. 지오서버 로그를 확인해보니
다음과 같은 에러가 발생했다.

1)
[ Failed to locate the input file file: 디렉토리 경로
org.geoserver.rest.RestException 400 BAD_REQUEST: Failed to locate the input file file:

디렉토리 경로 ] 에러발생!
(스샷 찍는 걸 깜빡해 텍스트로 대체함..)

2)

[ Failed to create reader from file : 디렉토리 경로 ] 에러발생!

대충 에러로그만 보면 해당 디렉토리 및 파일에 접근을 해서 파일을 가져와서 레이어를 발행해야 되는건데
무슨 이유에서인지는 몰라도 디렉토리 및 파일을 제대로 가져오지 못하는 것 같았다..

그래서 접근을 제대로 못하는 것 같아, 경로를 우회하여 해당 파일에 접근 하려고 첫날 시도한 방법은 다음과 같았다.



1) 리눅스 환경에서 심볼릭링크를 걸어 해당 디렉토리 및 파일에 접근 => 리눅스 환경에서 심볼릭링크 설정 참조
2) 리눅스 환경에서 마운트를 걸어 해당 디렉토리 및 파일에 접근 => 리눅스 환경에서 마운트 설정 참조

그런데 이렇게 해도 결국 원본 디렉토리와 파일에 접근이 되질 않으니, 우회해도 소용없다는 걸 깨달았다..

그래서 근본적인 원인을 생각해보았는데.. 해당 디렉토리 및 파일에 WAS서버에서만 접근이 가능하도록
접근권한이 설정되어 있는 것을 발견.. 대충 그림으로 보면

 



개발서버는 같은 로컬에 WAS서버와 지오서버가 설치되어 있어서 됬었는데, 운영서버는 WAS서버와 지오서버가
다른 서버에 설치가 되어 있어, 접근권한도 달랐던 것을 인지하지 못하고 있었다.

그래서 WAS서버에서 파일업로드를 통해 디렉토리 및 파일을 생성할 때 다른 서버에서도 접근할 수 있도록 권한을
설정해주면 되겠구나. 라는 생각이 들어 java코드를 조금 수정하였다.

 

자바 접근권한 설정방법 참조

 

이렇게 처음부터 접근권한을 설정해주고 디렉토리와 파일을 생성해주니,
지오서버에서도 제대로 파일을 읽어들여서 레이어를 발행할 수 있었다.

 

 

※ 주의할 점은 디렉토리만 접근권한을 설정할 게 아니라, 디렉토리와 파일 둘다 접근권한을 설정해주어야 한다!

 

 

 

728x90
반응형