GIS

[일상] 지오서버에서 레이어 발행시 FileNotFoundException (Is a Directory) 에러를 뱉었던 일

모찌바라기 2023. 2. 16. 12:43
728x90
반응형

 

 

 

기존에 되던 기능이 인프라 이전을 하고나서 먹통이 되었다. 뭐가 문제인지 몰라 소스를 보는데

소스는 변경사항이 없었으니 인프라 문제겠거니 했다. 결론은 마운트가 해제되어서 마운트를 해주는 것으로 해결함

 

java에서 FileNotFoundException (Is a Directory) 에러를 찾는 것은 디렉토리 경로를 찾을 수 없어서 떨어지는

에러인데 처음 봤을때 분명히 저 경로에 디렉토리 및 파일이 있는데 왜 에러가 떨어지는거지? 

고민을 많이 했다. 

 

에러가 나게 된 로직은 대충 아래와 같았다.

 

 

1) WAS서버에서 레이어로 발행 할 이미지영상 파일을 업로드하면 특정 경로에 디렉토리 및 파일을 생성하게 되고

2) 지오서버에서는 저장소에 명시된 경로를 통해 해당 파일을 읽어 SHP으로 변환하고 레이어를 발행하게 된다.

 

 

 

지오서버의 저장소에 들어가보면 위의 이미지와 같이 URL에 어떤 경로가 지정되어 있다.

결론은 저 경로에 해당 디렉토리와 파일이 없으니 FileNotFoundException (Is a Directory) 에러를 뱉는 것..

 

문제는 WAS서버에서 파일을 업로드 하였으니 WAS서버에는 디렉토리와 파일이 제대로 생성이 되었는데..

지오서버에는 해당 경로에 해당 디렉토리 및 파일이 존재하지 않는다는 것이다..

 

나는 지오서버에서 직접 WAS서버에 접근하여 해당 파일들을 가져오는지 알고 있었다.. ( 이 믿음 때문에 시간날림.. )

예전에 썼던 글인데 아래 로직처럼 흘러가는 줄 알았었다.

 

 

https://bongra.tistory.com/324

 

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

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

bongra.tistory.com

 

그럼 결국 문제를 해결하는 방법은 2가지가 있다.

 

1) WAS서버와 지오서버를 마운트 하는 방법

2) WAS서버에서 파일을 업로드 할 때, 지오서버에도 똑같은 경로에 디렉토리 및 파일을 생성해주는 방법

 

하지만 2번과 같은 방법은 같은 디렉토리 및 파일을 생성해주기 때문에 디스크라던지 성능상으로 좋지 못하다.

그래서 마운트를 하면 WAS서버에 있는 디렉토리 및 파일에도 접근이 가능하다. ( 물론 Read 권한이 있어야겠지만.. )

 

 

그림이 조금 이상하지만 이런 느낌이라고 보면 된다. 실제로 마운트 공간이 존재하는 건 아니고..

WAS서버에 있는 디렉토리 및 파일 등을 지오서버에서도 접근할 수 있다는 의미로 받아들이자..

이렇게 되면 지오서버의 저장소에서 명시하고 있는 디렉토리 및 파일에 지오서버도 접근이 가능하기 때문에

해당 파일을 가지고 SHP파일을 생성하고 레이어까지 발행할 수 있어진다.

 

그리고 이걸 보면서 알게 된건데 이미지 영상인 TIFF파일은 해당 파일을 읽어

SHP을 생성하고 레이어까지 발행 한다는 것을 알았다.

 

 

 

728x90
반응형